我有一些看起来像的代码:
var instance = new ModelA(element);
if(instance.isValid()){
CollectionA.add(instance);
}
有没有更好的方法来写这个?希望初始化 ModelA 或添加到 CollectionA 会失败或抛出。
我有一些看起来像的代码:
var instance = new ModelA(element);
if(instance.isValid()){
CollectionA.add(instance);
}
有没有更好的方法来写这个?希望初始化 ModelA 或添加到 CollectionA 会失败或抛出。
您必须覆盖构造函数。
请参阅此处了解更多信息。
Backbone 有这个功能。模型代码中有一个可用的验证方法,它将在任何保存之前被调用(你也可以通过传递 {validate:true}
这是来自主干文档的片段:
var Chapter = Backbone.Model.extend({
validate: function(attrs, options) {
if (attrs.end < attrs.start) {
return "can't end before it starts";
}
}
});
如果 validate 返回任何内容,那么 Backbone SAVE 将不会发生,但如果它干净地通过您的 validate 函数而没有任何返回,那么它将继续进行保存。