2014-02-20 3 views
11

Я новичок в Backbone и я запутался сниппета образца кода приложения TODO: http://backbonejs.org/docs/todos.htmlаргументы обратного вызова Backbone listenTo

AppView На объекте есть функция называется addOne, которая принимает аргумент:

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

Эта функция вызывается всякий раз, когда событие add запускается на модели Todos. Там, кажется, не будет ничего здесь, что говорит слушателю, что он должен передать в todo аргумент к addOne функции:

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

Когда событие получает срабатывает и this.addOne называется, как же Backbone знать, укажите addOne с аргументом todo, так как он не указывается в вызове listenTo?

+0

Возможно, Тодос является экземпляром 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.addOne затем передают эти аргументы при вызове listenTo.

+5

В этом документе описывается [Каталог событий] (http://backbonejs.org/#Events-catalog). –

Смежные вопросы