我正在尝试了解 Backbone.js 的 Todo 示例应用
虽然我已经理解了大部分内容,但仍有一部分我不明白,希望有人能为我解释一下。
查看https://github.com/jeromegn/localtodos/blob/master/javascripts/todos.js
第162行:函数中的“todo”参数是如何到达这里的?我看不到它是如何发送的或从哪里发送的?
任何帮助将不胜感激,是的,我会相信好的答案,现在我知道它在这个网站上是如何工作的。
谢谢
最佳答案
在 AppView.initialize
方法中,第 146 行,addOne
方法被注册为 Todos
集合的 add 事件的事件处理程序.
Todos.bind('add', this.addOne);
当项目添加到集合中时,Backbone 会触发 add
事件,并将添加的模型作为第一个参数传递给事件处理程序。
根据list of built-in events ,add
事件处理程序方法传递以下参数:
"add" (model, collection, options) — when a model is added to a collection.
这意味着 addOne
方法还可以接收另外两个参数:
addOne: function(todo, todoscollection, options) {
console.log(todo); // -> the model which was added
console.log(todoscollection); // -> the collection, to which the model was added
console.log(options); // -> the original options argument passed to collection.add
}
但是由于在 Javascript 中声明完整的参数列表是不必要的,因此示例的作者选择仅“接收”第一个参数。
关于javascript - Backbone.js 和 Todo 示例应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14442442/