Model ใน backbone นอกจากจะสามารถใช้เก็บ Data ได้ ยังมีความสามารถในการทำ Binding for Change ได้ด้วย นอกจากนั้นยังสามารถ Validate Data ก่อนที่จะเก็บใน Model ได้อีกด้วย เดี๋ยวเราจะมาลองดูการใช้งาน Feature ดังกล่าวกันนะครับ
จากในตัวอย่าง เราทำการสร้าง Model ที่ชื่อว่า Person โดยการ extend จาก Backbone.Model โดยภายใน Model มีการกำหนดค่า defaults สำหรับ attribute ที่ชื่อว่า gender และ nationality
ในส่วนของ initialize เรามีการกำหนด binding ไว้ 2 ตัวคือ 'change:name' ซึ่งจะทำงานเมื่อตรวจพบว่า attribute ที่ชื่อว่า name มีการเปลี่ยนแปลง ส่วน 'error' จะทำงานเมื่อมีการ throw error ออกมาจาก Model (ซึ่งเดี๋ยวเราจะนำไปใช้ในตอน Validate)
นอกจากนั้นเรายังการกำหนด callback function ให้กับ validate ซึ่งจะทำงานทุกครั้งที่เรามีการกำหนดค่าให้กับ attribute โดยในที่นี้เราทำการทดสอบว่า ถ้า age<18 จะคืนค่า "too youg!" กลับมา ซึ่งการคืนค่า string กลับมาดังกล่าว จะส่งผลให้มีการ throw error ออกมาจาก Model ซึ่งจะส่งผลให้ callback function ที่เรา bind เอาไว้กับ event "error" ทำงาน ซึ่งจะแสดงข้อความ error ออกมาบนหน้าจอ
สำหรับใน Model ตัวอย่างนี้ เรามีการ add custom function ชื่อว่า sayHello เข้าไปด้วย โดยจะทำหน้าที่แสดงข้อความ Hello พร้อมกับดึงค่า attribute ที่ชื่อว่า name ขึ้นมาแสดง
สำหรับใครที่สนใจ สามารถศึกษาเพิ่มเติมได้ที่นี่ครับ http://documentcloud.github.com/backbone
แหล่งที่มา:
Font อ่านยากมากครับ ไหว้ละเปลี่ยนที
ReplyDelete