2014-10-27 55 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