我正在学习backbone.js
,其中使用validate
方法。但它没有被set
触发
以下是我的代码:
JS:
var person = Backbone.Model.extend({
defaults:{
name:"Soni",
age:'40',
work:'Still searching'
},
mainWork: function(mainwork) {
return this.get('name')+" does "+mainwork+" for living";
},
validate: function(attrs) {
console.log("hi");
if (attrs.age < 1) {
return "can't end before it starts";
}
}
});
在控制台上:
var x = new person({name:'xyz',age:37});
x.set('age',-34);
请告诉我,我在这里失踪了什么。
答案 0 :(得分:3)
将在模型save
上调用验证方法。如果你想在属性set
上触发它,你应该调用它将验证:true选项:
x.set({age: -34}, {validate: true});