我是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);
},
只要在add
模型上触发Todos
事件,就会调用此函数。这里似乎没有任何东西告诉监听器它需要将todo
参数传递给addOne
函数:
this.listenTo(Todos, 'add', this.addOne);
当事件被触发并且this.addOne
被调用时,Backbone如何知道向addOne
提供它的todo
参数,因为它似乎没有在{{{ 1}}调用?
答案 0 :(得分:10)
Backbone.Collection.add
& Backbone.Collection.create
将触发add
事件传递model, this, options
作为这样的参数。
.trigger('add', model, this, options);
this.addOne
调用 listenTo
时传递这些参数。