2014-02-20 61 views
11

我是新来的骨干,我通过样品待办事项应用程序代码的片段困惑:http://backbonejs.org/docs/todos.html骨干listenTo回调参数

AppView对象有一个名为addOne函数,它的参数:

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

只要在Todos模型上触发add事件,就会调用此函数。目前似乎没有任何东西在这里,告诉它需要在todo参数传递给addOne功能监听器:

this.listenTo(Todos, 'add', this.addOne); 

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

+0

有没有可能是Todos是Backbone.Collection的一个实例? –

+0

@KyleNeedham是的。 – user886596

+0

http://backbonejs.org/#Events-catalog –

回答

9

Backbone.Collection.add & Backbone.Collection.create将触发add事件传递model, this, options因为这样的论点。

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

this.addOnelistenTo叫,然后通过这些参数。

+5

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