当使用T. Hedersen的backbone.validation插件(https://github.com/thedersen/backbone.validation)和Derick Bailey的backbone.modelbinding插件(https://github.com/derickbailey/backbone.modelbinding)时,我遇到了问题。
我已经整理了一个jsFiddle示例(http://jsfiddle.net/simax/bEqnZ/)来试图证明这个问题。
在示例中,如果删除firstname或lastname的内容,则isValid(true)调用仍然返回true,这是不正确的,因为firstname和lastname都是必填字段。您还会注意到DisplayForm未正确更新。似乎模型属性没有正确“取消设置”。
但是,如果删除对Backbone.Validation.this(bind)的调用,模型属性和DisplayForm会正确更新。
任何人都知道问题是什么?
答案 0 :(得分:5)
快速回答:
将验证行更改为:
Backbone.Validation.bind(this, {forceUpdate: true});
<强>背景强>:
当模型绑定尝试更新模型时,验证失败,模型根本不更新。
设置 forceUpdate 标志允许您的模型处于无效状态(因此可以保留空字符串)。