2

我有一些看起来像的代码:

var instance = new ModelA(element);
if(instance.isValid()){
    CollectionA.add(instance);
}

有没有更好的方法来写这个?希望初始化 ModelA 或添加到 CollectionA 会失败或抛出。

4

2 回答 2

1

您必须覆盖构造函数。

请参阅此处了解更多信息。

于 2013-05-26T00:01:38.443 回答
0

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 函数而没有任何返回,那么它将继续进行保存。

于 2013-05-26T00:05:18.197 回答