Backbone listenTo回调参数

use*_*596 12 javascript backbone.js

我是Backbone的新手,我对示例待办事项应用代码的片段感到困惑:http://backbonejs.org/docs/todos.html

AppView对象上有一个addOne带有参数的函数:

addOne: function(todo) {
  var view = new TodoView({model: todo});
  this.$("#todo-list").append(view.render().el);
},
Run Code Online (Sandbox Code Playgroud)

只要addTodos模型上触发事件,就会调用此函数.这里似乎没有任何东西告诉监听器它需要传递一个todo参数到addOne函数:

this.listenTo(Todos, 'add', this.addOne);
Run Code Online (Sandbox Code Playgroud)

当事件被触发并被this.addOne调用时,Backbone如何知道提供addOne它的todo参数,因为它似乎没有在listenTo调用中指定?

Kyl*_*ham 10

Backbone.Collection.add&Backbone.Collection.create将触发add事件model, this, options作为这样的参数传递.

.trigger('add', model, this, options);

this.addOne然后在调用时传递这些参数listenTo.

  • 文档中的[Events Catalog](http://backbonejs.org/#Events-catalog)涵盖了这一点. (7认同)