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

unb*_*ble 1 javascript backbone.js backbone-views

Backbone文档说

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

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

jev*_*lio 5

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

View = Backbone.View.extend({
  events: function() {
    return {
      "click #save" : "save"
    };
  }
});
Run Code Online (Sandbox Code Playgroud)

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

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