1

我有以下 BackboneJS 视图,它有一个模型:

view = Backbone.View.extend({
   events: {
       // This will fire btnClicked() when the button is clicked
       "click .btn": "btnClicked",

       // Will this fire when the "data" property of my model changes?
       "change:data": "render"
   },
   btnClicked: function() {},
   render: function() {}
});

知道是否可以使用此快捷方式吗?

如果不是,则扩展形式为:

this.model.bind("change:data", render);
4

2 回答 2

1

该事件映射是用于监听 UI 事件的视图,而不是用于连接数据事件。

视图文档状态

使用 jQuery 的 on 函数为视图中的 DOM 事件提供声明性回调。

所以 View 的事件映射不能用于模型事件。

于 2013-04-23T01:17:54.227 回答
1

正如 Kyle 所说,events哈希用于将 DOM 事件委托给视图对象。

值得补充的是,您通常应该使用listenTo表单而不是bind方法,因为这将为您处理事件清理(使用events哈希处理 DOM 事件的主要优点之一)。

this.listenTo(this.model, "change:data", render);
于 2013-04-23T17:41:07.273 回答