为什么这个简单的例子不起作用:
var Person = Backbone.Model.extend({
defaults: {
title: 0
},
validate: function(atts, options){
if(atts.title < 0) {
return console.log('tekst');
}
}
});
var person1 = new Person();
person1.on('invalid',function(model,error){
alert(model.get('title') +error );
});
当我使用person1.set({title: -1},{validate: true})
设置不正确的值时,控制台会返回错误消息,但模型仍会更改为-1。
答案 0 :(得分:1)
来自文档:
如果属性有效,请不要从validate返回任何内容;如果 它们无效,返回您选择的错误。它可以是 简单作为要显示的字符串错误消息,或完整错误 以编程方式描述错误的对象。
您需要返回值,而不仅仅是返回语句。试试这个:
validate: function(atts, options){
if(atts.title < 0) {
return "can't be negative!";
}
}