模特:
validation: {
title: {
required: true
},
body: {
required: true
}
}
在视图中我打电话:
this.parent.model.isValid(['title', 'body']);
这只返回我的true / false,如何更改验证以获取无效的参数名称?
我不能一个接一个地传递属性,因为它可能很多。
答案 0 :(得分:1)
在docs伙伴
中解释了这一点失败的验证会触发"无效" event,并使用此方法返回的值在模型上设置validationError属性。
var Chapter = Backbone.Model.extend({
validate: function(attrs, options) {
if (attrs.end < attrs.start) {
return "can't end before it starts";
}
}
});
var one = new Chapter({
title : "Chapter One: The Beginning"
});
one.on("invalid", function(model, error) {
alert(model.get("title") + " " + error);
});
在你的情况下(代码未经过测试,我希望你能得到这个想法):
this.parent.model. = Backbone.Model.extend({
validate: function(attrs, options) {
var errors= new Array;
if (!attrs.title) {
errors.push("Title is required");
}
if (!attrs.body) {
errors.push("Body is required");
}
if errors.length
return errors;
}
});
this.parent.model.on("invalid", function(model, error) {
alert(error);
});
//You don't need to pass an attribute list
this.parent.model.isValid();
请注意,我会将错误数组(如果有)保留在this.parent.model.validationError
以便以后处理,这样您就不需要捕获&#34;无效&#34;模型上的事件
答案 1 :(得分:0)