如何将Backbone View事件哈希定义为函数?

时间:2013-02-04 07:06:37

标签: javascript backbone.js backbone-views

Backbone文档说

  

如果你想等到运行时再定义它们,那么像tagName,id,className,el和events这样的属性也可以定义为一个函数。

我还没有看到使用此功能的示例。有人能告诉我它是如何实现的吗?

1 个答案:

答案 0 :(得分:5)

在最简单的形式中,您只需从函数返回一个事件哈希对象:

View = Backbone.View.extend({
  events: function() {
    return {
      "click #save" : "save"
    };
  }
});

当然,这并没有多大意义。如果需要有条件地绑定事件或使用某些信息(仅在运行时可用),此功能非常有用:

View = Backbone.View.extend({
  events: function() {
    return {
      "click #save" : this.model.isNew() ? "create" : "update"
    };
  }
});