Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Backbone.js和Todo示例应用程序_Javascript_Backbone.js - Fatal编程技术网

Javascript Backbone.js和Todo示例应用程序

Javascript Backbone.js和Todo示例应用程序,javascript,backbone.js,Javascript,Backbone.js,我正在尝试了解Backbone.js的Todo示例应用程序 虽然我已经了解了其中的大部分,但有一部分我不明白,希望有人能为我解释 看着 第162行:函数中的“todo”参数是如何到达这里的?我看不出它是怎么寄来的,从哪里寄来的 任何帮助都将不胜感激,是的,我相信好的答案现在我知道它是如何在这个网站上工作的 谢谢当一些代码调用该函数“addOne”时,它需要在“addOne”函数中提供一个名为“todo”的参数。如果您注意到上面的“bind”,那么“add”事件也会调用“addOne”。如果您查看

我正在尝试了解Backbone.js的Todo示例应用程序

虽然我已经了解了其中的大部分,但有一部分我不明白,希望有人能为我解释

看着

第162行:函数中的“todo”参数是如何到达这里的?我看不出它是怎么寄来的,从哪里寄来的

任何帮助都将不胜感激,是的,我相信好的答案现在我知道它是如何在这个网站上工作的


谢谢

当一些代码调用该函数“addOne”时,它需要在“addOne”函数中提供一个名为“todo”的参数。如果您注意到上面的“bind”,那么“add”事件也会调用“addOne”。如果您查看下面的“addAll”,其中“each”将在每次调用“addOne”时提供一个元素。

当一些代码调用该函数“addOne”时,它需要在“addOne”函数中提供一个名为“todo”的参数。如果您注意到上面的“bind”,那么“add”事件也会调用“addOne”。如果您在下面查看,您会看到“addAll”,其中“each”将在
AppView中每次调用“addOne”时提供一个元素。初始化
方法,在第146行,
addOne
方法注册为
Todos
集合的add事件的事件处理程序

Todos.bind('add', this.addOne);
将项添加到集合时,主干将触发
add
事件,并将添加的模型作为第一个参数传递给事件处理程序

根据,向
add
事件处理程序方法传递以下参数:

"add" (model, collection, options) — when a model is added to a collection.
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
}
这意味着
addOne
方法还可以接收另外两个参数:

"add" (model, collection, options) — when a model is added to a collection.
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中声明完整参数列表是不必要的,所以示例的作者只选择“接收”第一个参数。

AppView.initialize
方法的第146行,将
addOne
方法注册为
Todos
集合的add事件的事件处理程序

Todos.bind('add', this.addOne);
将项添加到集合时,主干将触发
add
事件,并将添加的模型作为第一个参数传递给事件处理程序

根据,向
add
事件处理程序方法传递以下参数:

"add" (model, collection, options) — when a model is added to a collection.
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
}
这意味着
addOne
方法还可以接收另外两个参数:

"add" (model, collection, options) — when a model is added to a collection.
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中声明完整参数列表是不必要的,所以示例的作者选择只“接收”第一个参数。

感谢您的回复,我理解“addAll”函数如何在集合中循环并调用addOne,但也可以直接从绑定中调用“addOne”。模型是如何以这种方式传递的?感谢您的回复,我理解“addAll”函数如何在集合中循环并调用addOne,但是“addOne”也可以直接从绑定中调用。模型是如何以这种方式传递的?啊,太棒了,这就解释了。非常感谢!啊,太棒了,这就解释了。非常感谢!