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

Sim*_*max 3 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.

谁知道问题是什么?

Tal*_*key 5

快速回答:

将验证行更改为:

Backbone.Validation.bind(this, {forceUpdate: true});
Run Code Online (Sandbox Code Playgroud)

背景:

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

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