我已经创建了一个对象:
var Person = Backbone.Model.extend({
defaults: {
'name': '',
'age': 0
},
initialize: function() {
this.on('error', function(model, error){
console.log(error);
});
},
validate: function(attributes){
if (attributes.name == '') {
return "How do we call him!?";
}
},
changeName: function(name) {
this.set({'name':name});
},
getOlder: function() {
this.set({'age': this.get('age') +1});
}
});
我创建一个Person的实例,并放置在一个空白的名字,我从来没有收到一个错误。 但是,当我在已创建的实例设置一个空白名称,它打响了验证。
var teejay = new Person;
teejay.changeName('');
=> How do we call him!?
teejay.get('name');
=> ""
从什么我从骨干源代码看,我看
this.set(attributes, {silent: true});
它是正确的假设,验证只是做每当属性被更改或设置?