我做了Thomas Davis的以下教程,我决定在年龄领域添加一些验证。我试图编辑模型如下,但没有成功:
var User = Backbone.Model.extend({
validate: function(attr, error) {
if(attr.age < 18) {
console.log(error);
return error;
}
},
checkValidation: function(){
if (validate) {
console.log('validation successful');
} else {
urlRoot: '/users'
}
}
});
完整代码here
答案 0 :(得分:0)
当您在模型上调用set或save时,将自动调用您的validate方法,并且如果您返回任何内容,将阻止save方法继续,就像您一样。如果您想在设置/保存之外检查验证,只需拨打“this.isValid()”。
checkValidation方法有两个问题:
checkValidation: function(){
if (validate) { //where is this validate variable coming from?
console.log('validation successful');
} else {
urlRoot: '/users' //not doing anything, don't use : syntax outside of an object
}
}
如果你想要一个方法来做到这一点,试试这个:
checkValidation: function(){
if (this.isValid()) {
console.log('validation successful');
} else {
this.urlRoot = '/users' //must specify this, use =
}
}
在任何一种情况下,我都会阅读验证方法:http://backbonejs.org/#Model-validate或查看其工作原理:http://backbonejs.org/docs/backbone.html#section-68