backbone.js – Stickit:如何在每个模型之后触发更改事件 – >视图更改

我在视图中有很多事件绑定到元素,但是当我使用stickit js通过更改模型来更改视图中的值时,它不会触发onChange事件.

有没有办法可以为当前模型触发onchange事件:在模型中设置值后的元素,而不必为每个绑定编写处理程序?这适用于所有表单元素input / select / textarea.

我想为页面上的每个表单元素避免以下内容:

bindings: {
    '#foo': {
         observe: 'foo',
         afterUpdate: 'forceChange'
    },
    '#bar': {
         observe: 'bar',
         afterUpdate: 'forceChange'
    },
    ...
},

forceChange: function(el) { jQuery(el).change() }
最佳答案
一个可能的hack(仅限版本0.6.3)将定义一个匹配所有元素的全局处理程序:

Backbone.Stickit.addHandler({
  selector: '*',
  afterUpdate: function($el) {
    $el.trigger('change');
  }
});

由于处理程序与其他匹配处理程序和绑定配置按其定义的顺序混合在一起,因此您无法在任何绑定中使用afterUpdate而不会覆盖此全局匹配处理程序,因为绑定配置是最后一个要混合的在.你可以阅读更多关于它here.

转载注明原文:backbone.js – Stickit:如何在每个模型之后触发更改事件 – >视图更改 - 代码日志