开始学习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