開始學習Backbone,試圖在我的Person模型中進行一些簡單的驗證,但驗證方法似乎沒有在設置新時代時運行。任何人都可以解釋我可能會出錯嗎?我不想繼續學習,直到我明白爲止。骨幹模型裏面的驗證方法沒有被調用?
JS
var Person = Backbone.Model.extend({
defaults: {
name: 'John Doe',
age: 30,
occupation: 'working'
},
validate: function(attrs) {
console.log(attrs);
if (attrs.age < 0) {
return 'Age must be positive, stupid';
}
if (! attrs.name) {
return 'Every person must have a name, you fool.';
}
},
work: function() {
return this.get('name') + ' is working.';
}
});
目前,我剛開始並在控制檯中設置的值,因此:
var person = new Person({
name: 'Lady Madonna',
age: 23
});
person.on('error', function(model, error){
console.log(error);
});
當我設置的年齡爲負值的validate方法不生效:
person.set('age', -55);
你在哪裏調用這些函數?你怎麼打電話給他們? – 2013-03-25 12:24:52
請添加如何設置新值的示例。 – mirrormx 2013-03-25 12:26:01
增加了一個例子 – styler 2013-03-25 12:27:29