将Backbone.ModelBinding与Backbone.Validation一起使用

时间:2012-03-08 10:47:22

标签: backbone.js

当使用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会正确更新。

任何人都知道问题是什么?

1 个答案:

答案 0 :(得分:5)

快速回答

将验证行更改为:

Backbone.Validation.bind(this, {forceUpdate: true});

<强>背景

当模型绑定尝试更新模型时,验证失败,模型根本不更新。

设置 forceUpdate 标志允许您的模型处于无效状态(因此可以保留空字符串)。