gpt4 book ai didi

javascript - TodoMVC 上的 Backbone.js View : function and it's argument and how does it works

转载 作者:行者123 更新时间:2023-12-03 11:58:33 25 4
gpt4 key购买 nike

我正在通过此处的示例 todomvc 应用程序学习 Backbone.js: http://todomvc.com/architecture-examples/backbone/

我有点陷入了 app-view.js 部分: https://github.com/tastejs/todomvc/blob/gh-pages/architecture-examples/backbone/js/views/app-view.js

这是代码片段:

    // Add a single todo item to the list by creating a view for it, and
// appending its element to the `<ul>`.
addOne: function (todo) {
var view = new app.TodoView({ model: todo });
this.$list.append(view.render().el);
},

函数“addOne”中的“todo”变量来自哪里?我搜索了整个项目文件,到目前为止没有找到任何指定或初始化“todo”变量的特定函数。我尝试阅读他们网站上的 Backbone.js 和 Underscore.js 文档,但到目前为止还没有找到解释。

最佳答案

好的,让 @Evgeniy 所说的更具可读性..

当您在集合上监听“add”时,传递给监听方法的第一件事是添加的模型:

this.listenTo(app.todos, 'add', this.addOne);

这是主干源中的行:

(model = toAdd[i]).trigger('add', model, this, options);

因此您可以看到第一个参数是添加的模型,然后是集合,然后是从 this.collection.add(model, [options]) 传递的任何选项.

addAll也在调用addOne - 它循环所有模型并为它们一一添加 View :

app.todos.each(this.addOne, this);

在每种情况下,第一个参数都是一个需要为其添加 View 的模型。

关于javascript - TodoMVC 上的 Backbone.js View : function and it's argument and how does it works,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25499263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com