警告:我是骨干新手。
我正在迭代我的集合中的所有模型并渲染它们。然而,很简单,我想确保我很好地理解它是如何工作的。这就是我所拥有的 -
模型:
File = Backbone.Model.extend({});
收藏
Folder = Backbone.Collection.extend({ model: File });
模型视图
FileView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'render');
this.render();
},
render: function() {
this.template = _.template(document.getElementById("fileTemplate").innerHTML);
this.$el.html(this.template({ fileName: this.model.get("FileName") }));
}
})
集合视图
FolderView = Backbone.View.extend({
initialize: function () {
_.bindAll(this, 'render');
this.render();
},
render: function () {
_(this.collection.models).each(function(file) {
var fileView = new FileView({ model: file});
this.$el.append(fileView.el);
},this); <--???
}
});
这工作得很好。我的问题是关于我的 FolderView 中的 _.each 。为什么我必须将这个传回我的每个循环?如果我不通过this,它指的是我的窗口对象而不是我的集合。我知道有必要通过它,我只是不知道为什么。