我有一些看起来像的代码:
var instance = new ModelA(element);
if(instance.isValid()){
CollectionA.add(instance);
}
有没有更好的方法来写这个?更喜欢初始化ModelA或添加到CollectionA会失败或抛出。
答案 0 :(得分:1)
你必须覆盖构造函数。
有关详细信息,请参阅here。
答案 1 :(得分:0)
Backbone正好将其解压缩。您的模型代码中有一个验证方法,可以在任何保存之前调用它(您也可以通过传递{validate:true}
进行设置以下是backbone docs:
的摘录var Chapter = Backbone.Model.extend({
validate: function(attrs, options) {
if (attrs.end < attrs.start) {
return "can't end before it starts";
}
}
});
如果validate返回任何内容,那么Backbone SAVE将不会发生,但如果它干净地通过你的验证函数而没有任何返回,那么它将继续进行保存。