Магистральный слухДля аргументов обратного вызова
Я новичок в Backbone, и меня смущает фрагмент кода кода приложения todo: http://backbonejs.org/docs/todos.html
На объекте 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
?
Ответы
Ответ 1
Backbone.Collection.add
и Backbone.Collection.create
инициируют событие add
, проходящее через model, this, options
в качестве таких аргументов.
.trigger('add', model, this, options);
this.addOne
затем передается этими аргументами при вызове listenTo
.