2013-03-31 328 views
9

我剛剛開始backboneJs。骨幹驗證無法正常工作

我做了一個簡單的例子,使用VisualStudio2012。 我加了主幹。

在我main.js

var Person = Backbone.Model.extend({ 
defaults: { 
    name: 'Mr Steel', 
    age: 26, 
    occupation: 'FrontEnd Web Developer' 
}, 

validate: function(attrs) { 
    if (attrs.age < 0) { 
     return 'Age must be a positive number.'; 
    } 
}, 

work: function() { 
    return this.get('name') + ' is working.'; 
} 
}); 

但是,當我去到瀏覽器>控制檯。並輸入以下內容..驗證甚至不會被觸發。

var person = new Person(); 
person.get('age');//26 
person.set('age', -25);//sets -25 

它將年齡設置爲-25。這很奇怪!!請幫忙。

回答

20

您必須將{validate:true}參數傳遞給set方法,例如,

person.set('age', -25, {validate:true});

+0

作品,BYT我WHR的persone犯規傳視頻中看到{驗證:真},它仍然有效 – STEEL

+7

@STEEL是的,中老年骨幹版本方法'set'自動調用'validate'方法。但是現在驗證在默認情況下是禁用的。 –