如何使用简写的“事件”对象从视图中侦听模型中的更改事件?

时间:2013-04-23 01:12:42

标签: backbone.js

我有以下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);

2 个答案:

答案 0 :(得分:1)

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

Views州的文件

  

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

因此View的事件图不能用于模型事件。

答案 1 :(得分:1)

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

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

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