我有一個動態呈現的視圖。它可能有一些輸入或者可能沒有。 用戶填寫所有內容並嘗試發送數據後,我會呼叫this.model.isValid(true)
(或this.model.isValid()
),即使輸入數據有效,也會返回false
。使用Backbone.Validation跳過驗證模型屬性
我認爲原因是Backbone Validation試圖驗證我們沒有渲染的輸入的屬性。
如果我們沒有sticked視圖元素,是否有解決方案可跳過模型屬性?
UPDATE:
我模型與此類似:
MyApp.module("RecordModel", function (RecordModel, MyApp, Backbone) {
RecordModel.recordModel = Backbone.Model.extend({
validation: {
inn: {
pattern: 'inn',
msg: MyApp.messages.inn
},
bik: {
pattern: 'bik',
msg: MyApp.messages.bik
},
uin: {
pattern: 'uin',
msg: MyApp.messages.uin
},
sum: {
pattern: 'sum',
msg: MyApp.messages.sum
}
}
});
});
綁定:
bindings: {
'#uin': {
observe: 'uin',
setOptions: {
validate: true
},
events: MyApp.Validation.events.inputEvents
},
'#bik': {
observe: 'bik',
setOptions: {
validate: true
},
events: MyApp.Validation.events.inputEvents
},
'#inn': {
observe: 'inn',
setOptions: {
validate: true
},
events: ParkingMate.Validation.events.inputEvents
},
'#sum': {
observe: 'sum',
setOptions: {
validate: true
},
events: MyApp.Validation.events.inputEvents
}
}
因此,出於某種原因,我們不會渲染#sum
輸入。因爲我們沒有在我們的DOM中獲得,所以在RecordModel
中不存在,但骨幹網仍嘗試驗證它。或者,如果我們在DOM中有這個輸入,一切正常。
需要一些額外的信息關於如何實現這些字段的模型驗證 –
Denys是對的,請包括[mcve]。 –