我正在尝试更新与我models
关联的AppView
Collection
列表,但我不知道该怎么做。
我想在render
函数上执行此操作,目的是设置一个我称为treeId
的特定属性,默认为0
,我会将其更改为渲染后的不同值,以便为每个模型在html模板中设置不同的treeId
html attribute
。
render: function() {
console.log("View - App.render");
this.statusOpenedFolder();
var parentTreeId = this.parentTreeId;
_.each(this.collection.toJSON(), function (model, index) {
model.treeId = parentTreeId + index;
console.log("treeId edit " + model.treeId);
});
var assetsChildren = _.template(this.tmplAssetsChildren, {items:this.collection.toJSON()});
this.$currentTarget.find("ul").remove();
this.$currentTarget.append(assetsChildren);
this.delegateEvents();
return;
}
基本上我需要它来获取树状菜单的子项。
显然_.each
方法不起作用,因为我在没有任何参考集合的情况下这样做,我该怎么做?
答案 0 :(得分:0)
您可以在this.collection.models
功能中使用_.each
,或只使用this.collection.each
,因为它在Backbone.Collection
中混合使用。但是,我不确定您是否要在每次渲染时重新计算它 - 我猜this.parentTreeId
不会更改,因此您可以在initialize
中执行此操作。