有没有办法在初始化时验证backbone.js模型?

时间:2013-05-25 23:45:06

标签: javascript backbone.js

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

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

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

2 个答案:

答案 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将不会发生,但如果它干净地通过你的验证函数而没有任何返回,那么它将继续进行保存。