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)
只要add在Todos模型上触发事件,就会调用此函数.这里似乎没有任何东西告诉监听器它需要传递一个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.