开始学习 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);
});
当我将年龄设置为负值时,验证方法不会生效:
person.set('age', -55);