2014-10-27 103 views
0

我使用骨干的插件backbone.validation进行模型字段验证。我喜欢插件介绍的验证方式。我错过的是验证特定领域的方式,而不是整个模型。这里是想什么,我有:enitre主干模型的复杂验证

var SomeModel = Backbone.Model.extend({ 
    validation: { 
    field1: { 
     required: true 
    }, 
    field2: { 
     required: true 
    }, 
    field3: { 
     required: true 
    } 
    'whole model': function() { 
     // this method makes some complex validation logic and expected to be 
     // called each time the validation of model (some fields) is performed 
    } 
    } 
}); 

不使用backbone.validation插件的时候,我可以很容易做到这一点,但是当我使用它怎么可以这样做?

回答

0

你可以做到这一点,在这里看到:https://github.com/thedersen/backbone.validation#validate

"You can also call it manually without any parameters to validate the entire model."

该插件将覆盖Backbone.Model.prototype.validate幕后。如果您宣布了所有规则并致电modelInstance.validate(),则应验证所有属性。

+0

你是否建议声明一些伪造的属性并手动调用'validate'方法?这是我想避免的。 – 2014-10-27 10:38:33

+0

也许我真的不明白你的观点。不需要假货。你想验证“整个模型”,这听起来你想要一次验证所有属性,不是吗?这里是一个jsbin来演示我的意思:http://jsbin.com/rimabenuje/2/edit?html,js,output – mwager 2014-10-27 14:28:18

+0

我想做一些复杂的验证,它根据几个值验证一些条件(全部)属性。例如'if(field1.length> 3)return field2.length + field3.length> 5' – 2014-10-27 18:34:43