Backbone JS:集合视图中表示模型的参数从哪里来?
Backbone JS: Where does parameter representing model in collection view come from?
我正在学习Backbone JS。虽然我觉得到目前为止我做了很好的过程,但有一件事我不明白。
采取以下集合视图:
App.Views.Tasks = Backbone.View.extend({
tagName: 'ul',
render: function() {
this.collection.each(function(a) {
var taskView = new App.Views.Task({model: a});
this.$el.append(taskView.render().el);
}, this);
return this;
}
});
那里,参数a
表示一个对象,用于构造单个视图。但是这个参数是从哪里来的呢?
当然我知道它来自传递给这个视图的集合,但它怎么可以免费使用 – defined/documented 这个参数在哪里可用?
each
是 Underscore 的一种方法。它接受回调——当前接受 a
作为其参数的匿名函数。这个参数可以命名为任何东西,真的。它表示 我们在每个特定迭代中迭代的数组的特定元素 。为了清楚起见,我通常喜欢给它命名 elem
或 value
。更长的版本可能类似于 TheElementOfThisCollectionWeAreCurrentlyIteratingOver
.
如果您改为使用 for 循环,您的代码将如下所示:
for (var i = 0; i < this.collection.length; i++) {
var taskView = new App.Views.Task({model: this.collection[i]});
this.$el.append(taskView.render().el);
}
再看看这一行:
this.collection.each(function(a) {
each
对集合中的每个模型调用一个函数。 a
被定义为该方法的第一个参数,将代表一个特定的模型。
您基本上是在询问 underscore
实用程序库中的 _.each
函数是如何工作的。
它遍历集合中的每个项目并将其传递给回调函数。在此代码中,您将集合中的每个项目设置为 App.Views.Task
的模型并将其附加到 UI 元素,然后返回元素。
underscore
是Backbone的依赖,each
的文档可以参考here.
我正在学习Backbone JS。虽然我觉得到目前为止我做了很好的过程,但有一件事我不明白。
采取以下集合视图:
App.Views.Tasks = Backbone.View.extend({
tagName: 'ul',
render: function() {
this.collection.each(function(a) {
var taskView = new App.Views.Task({model: a});
this.$el.append(taskView.render().el);
}, this);
return this;
}
});
那里,参数a
表示一个对象,用于构造单个视图。但是这个参数是从哪里来的呢?
当然我知道它来自传递给这个视图的集合,但它怎么可以免费使用 – defined/documented 这个参数在哪里可用?
each
是 Underscore 的一种方法。它接受回调——当前接受 a
作为其参数的匿名函数。这个参数可以命名为任何东西,真的。它表示 我们在每个特定迭代中迭代的数组的特定元素 。为了清楚起见,我通常喜欢给它命名 elem
或 value
。更长的版本可能类似于 TheElementOfThisCollectionWeAreCurrentlyIteratingOver
.
如果您改为使用 for 循环,您的代码将如下所示:
for (var i = 0; i < this.collection.length; i++) {
var taskView = new App.Views.Task({model: this.collection[i]});
this.$el.append(taskView.render().el);
}
再看看这一行:
this.collection.each(function(a) {
each
对集合中的每个模型调用一个函数。 a
被定义为该方法的第一个参数,将代表一个特定的模型。
您基本上是在询问 underscore
实用程序库中的 _.each
函数是如何工作的。
它遍历集合中的每个项目并将其传递给回调函数。在此代码中,您将集合中的每个项目设置为 App.Views.Task
的模型并将其附加到 UI 元素,然后返回元素。
underscore
是Backbone的依赖,each
的文档可以参考here.