
Backbone 函式庫
|
203
模型和屬性
如果要設定和讀取某個物件實體的屬性,可以利用
set()
和
get()
函式:
var user = new User();
user.set({name: "Donna Moss"})
assertEqual( user.get("name"), "Donna Moss" );
assertEqual( user.attributes, {name: "Donna Moss"} );
set(attrs, [options])
會用它所接收到的參數物件,來設定實體屬性的屬性值。而
get(attr)
只會接收一組字串格式的參數(也就是欲讀取的屬性名稱),並回傳對應的
屬性值。模型實體裡有個區域變數
attributes
,是用來記錄模型目前所有的屬性。不過
我們不應該直接對
attributes
進行任何處理,如果想要讀取 / 設定屬性,應該要透過
get()
和
set()
函式,這樣才能確保在讀取 / 設定屬性時,能正確的觸發相對應的資料驗
證動作和事件。
如果想驗證物件實體的屬性值格式是否正確,可以利用
validate()
函式。這個函式預設
是個空白函式,只要覆寫(override)它,就可以在裡面添加任意的驗證邏輯:
var User = Backbone.Model.extend({
validate: function(atts){
if (!atts.email || atts.email.length < 3) {
return " 電子郵件信箱不應少於 ...