ข้อไหนอ่านโจทย์แล้วเกิดข้อสงสัยหรือไม่เข้าใจตรงไหนสามารถทักถามอาจารย์หรือ TA ก่อนได้เลย ไม่จำเป็นต้องรอให้ถึงคาบเรียน
สามารถแก้ไข Vue Instance ที่อยู่ใน
<script>
ที่อยู่ส่วนล่างของ checkout.html
ได้เลย!!! ไม่ต้องกลัวครับ
ข้อ 1 ประกาศตัวแปรเพื่อรับค่าจากแบบฟอร์มที่มีให้ ดังนี้
prename
ใช้รับค่าจาก select ชื่อ prename
fname
ใช้รับค่าจาก input ชื่อ fname
lname
ใช้รับค่าจาก input ชื่อ lname
score
ใช้รับค่าจาก 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}} |