ข้อไหนอ่านโจทย์แล้วเกิดข้อสงสัยหรือไม่เข้าใจตรงไหนสามารถทักถามอาจารย์หรือ TA ก่อนได้เลย ไม่จำเป็นต้องรอให้ถึงคาบเรียน
สามารถแก้ไข Vue Instance ที่อยู่ใน
<script> ที่อยู่ส่วนล่างของ checkout.html ได้เลย!!! ไม่ต้องกลัวครับ
ข้อ 1 ประกาศตัวแปรเพื่อรับค่าจากแบบฟอร์มที่มีให้ ดังนี้
prename ใช้รับค่าจาก select ชื่อ prenamefname ใช้รับค่าจาก input ชื่อ fnamelname ใช้รับค่าจาก input ชื่อ lnamescore ใช้รับค่าจาก input ชื่อ score
วิธีทำ: เปิดไฟล์นี้ในโปรแกรม vscode และแก้ไข code ใน
<div id="ex1">
prename = {{prename}}fname = {{fname}}lname = {{lname}}score = {{score}}ข้อ 2 สังเกตว่าจะมีปุ่ม Add Student อยู่ปุ่มนึง และมี table ที่มี column "Name" และ "Score" โดยนักศึกษาจะต้องทำให้เมื่อกดปุ่มนี้แล้ว ข้อมูลที่ถูกกรอกจากข้อ 1 จะต้องเพิ่มใน table ที่เห็นอยู่ โดยให้สร้าง Method ชื่อว่า addStudent() โดยมีรายละเอียดที่จะต้องทำใน Method นี้ ดังนี้
students
ในรูปแบบของ Objectstudent มาแสดงใน table
และแสดงข้อมูลตามตัวอย่างที่แสดงให้ดู ส่วนปุ่ม Delete จะใช้ในข้อถัดไป
วิธีทำ: เปิดไฟล์นี้ในโปรแกรม vscode และแก้ไข code ใน <div id="ex2">
| Name | Score | |
|---|---|---|
| {{`${student.prename}${student.fname} ${student.lname}`}} | {{student.score}} | Delete |
ข้อ 3 สร้าง Method ชื่อว่า removeStudent()
โดยจะมีหน้าที่ลบแถวของนักศึกษาที่ต้องการ โดยมีหลักการทำงานของ method ดังนี้
วิธีทำ: เปิดไฟล์นี้ในโปรแกรม vscode และแก้ไข code ของปุ่ม Delete ใน <div id="ex2">
ข้อ 4 ให้สร้าง Computed Properties ขึ้นมา 2 ตัว
sumScore โดยจะมีหน้าที่รวมคะแนนจากทุกคนจากตารางข้อที่ 2.
โดยอัตโนมัติ
avarageScore
โดยจะมีหน้าที่หาค่าคะแนนเฉลี่ยจากตารางข้อที่
2.
ซึ่งสามารถนำ
sumScore มาใช้ต่อได้เลย
วิธีทำ: เปิดไฟล์นี้ในโปรแกรม vscode และแก้ไข code
ใน <div id="ex4">
| sum | {{sumScore}} |
|---|---|
| avarage | {{avarageScore}} |
ข้อ 5 ให้สร้าง Watchers ในการดักจับการเปลี่ยนแปลงของค่า
averageScore และทำการบันทึกการเปลี่ยนแปลงเข้าไปในตัวแปร logs
ในรูปแบบของ Object และนำข้อมูลใน logs มาแสดงผลในรูปของตาราง ตามตัวอย่างด้านล่าง
โดยมีเงื่อนไขในการแสดงผล ดังนี้
averageScore มีค่าเพิ่มขึ้น ให้แสดงผลโดยใช้ตัวอักษรสีเขียวaverageScore มีค่าลลง ให้แสดงผลโดยใช้ตัวอักษรสีแดง
วิธีทำ: เปิดไฟล์นี้ในโปรแกรม vscode และแก้ไข code ใน
<div id="ex5">
| Average Score Change | From | Different From Old Value |
|---|---|---|
| {{log.newVal}} | {{log.oldVal}} | {{`${log.newVal - log.oldVal >= 0 ? '+' : '-'} ${Math.abs(log.newVal - log.oldVal)}`}} |
ข้อ 6 ให้ใช้ Watchers สำหรับการค้นหา First Name และ Last Name แล้วแสดงผลข้อมูลตามที่ค้นหามาได้
ตัวช่วย 💡Array.prototype.includes()
| First Name | Last Name | Gender | |
|---|---|---|---|
| {{item.first_name}} | {{item.last_name}} | {{item.email}} | {{item.gender}} |
ให้ใช้ Computed สำหรับการค้นหา Gender จากการเลือกตัวเลือกใน drop down list แล้วแสดงผลข้อมูลตามที่ค้นหามาได้
| First Name | Last Name | Gender | |
|---|---|---|---|
| {{item.first_name}} | {{item.last_name}} | {{item.email}} | {{item.gender}} |