我正在开发一个jQuery Backbone.js Web应用程序。
就像在Adobe Flex中一样,我在我的应用中为输入元素/小部件实现了2路数据绑定。因此,每个输入元素/控件都知道其对应的模型和模型属性名称。
当用户点击标签页或输入时,字段值会自动提供给模型。backbone.js中的双向数据绑定
container.model.set(this.attrName, this.value, options); // command 1
在另一个方向上,当模型被从后端更新时, 输入元件的视图/插件自动地获得 更新:
container.model.bind("change:"+ this.attrName, this.updateView, this); // command 2
的问题是:
当用户点击输入并且模型自动更新,并且触发“change:abc”并且调用this.updateView,不仅当来自 后端的新模型被调用时。
我的解决方案到现在为了在用户按下输入(命令1)时设置模型值并在我的updateView方法中检查该选项时传递选项“source:gui”。但是我不再满足于这个解决方案。
有没有人有更好的解决方案? 非常感谢提前
沃尔夫冈
更新:
当沉默的选项:真正的通过,该模型的验证方法不叫,所以 没有帮助。见Backbone.js的来源0.9.2:
_validate: function(attrs, options) {
if (options.silent || !this.validate) return true;
谢谢丹尼尔。但是通过这个选项,“验证”不会被调用。所以它不能帮助我。 –
嗨沃尔夫冈,我看到了你的新更新并添加了一个解决方案。 =) –