javascript - Backbone.js 和 Todo 示例应用程序

标签 javascript backbone.js

我正在尝试了解 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 eventsadd 事件处理程序方法传递以下参数:

"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/

相关文章:

javascript - TypeError : this. posts.filter不是使用Vue js和wordpress api的函数

javascript - Internet Explorer 8、9、10 javascript 无法正确加载

javascript - 为什么 JavaScript 库不使用错误处理

javascript - 组件/集成测试主干 View 等

javascript - 当屏幕尺寸改变时重新执行 api 调用

javascript - 用作 onclick 处理程序的函数运算符和函数声明的行为不同

javascript - 带唤醒状态的单字符输入

javascript - 页面加载/刷新时的 Backbone js 路由,无需哈希

javascript - 路由更改时从 Backbone View 中清除间隔

javascript - 如何将 jQuery 变量值发送到 asp.net 中的服务器端