我有一个动态呈现的视图。它可能有一些输入,也可能没有。在用户填写所有内容并尝试发送我调用this.model.isValid(true)
( or this.model.isValid()
)false
的数据后,即使输入的数据有效,它也会返回。
我认为原因是Backbone Validation试图验证我们没有呈现的输入的属性。
如果我们没有视图的粘贴元素,是否有任何解决方案可以跳过模型属性?
更新:
我的模型与此类似:
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 中没有它,所以它不存在于 DOM 中RecordModel
,但骨干网仍然试图验证它。或者,如果我们在 DOM 中有这个输入,那么一切正常。