我正在尝试在更改变量属性时记录错误,但永远不会触发验证,这是我的代码:
Person = Backbone.Model.extend({
initialize: function() {
console.log("hello world");
this.bind('change:name', function() {
console.log(this.get('name') + ' is now the value for the name');
});
this.bind('error', function(model, error) {
console.log(error);
});
},
defaults: {
name: 'Bob Hope',
height: 'unknown'
},
validate: function(attributes) {
if(attributes.name == 'blank'){
return 'no';
}
}
});
var person = new Person();
person.set({name: 'blank'});
我甚至试过这样的叫做套装:
person.set({name: 'blank'}, {validate: true});
但这也不起作用,我使用的是1.0.0版本。
答案 0 :(得分:1)
默认情况下,在保存之前调用validate,但也可以调用 在设置之前,如果传递了{validate:true}。
此外,触发的事件为invalid
,而不是error
,请尝试以下操作:
this.bind('invalid', function(model, error) {
console.log(error);
});