2013-06-19 84 views
0

我試圖從我的AppView鏈接到我的Collection更新models的列表,但我不知道該怎麼做。如何設置與骨幹集合上的模型列表

我認爲這樣做對render功能,目的是設置一個特定的屬性,我叫treeId這是0默認情況下,我會渲染後,將其更改爲不同的值設置不同的treeId HTML attribute在每個模型的html模板中。

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

你可以用這種方式創建你的視圖'new View(collection:new Collection())',我不確定這是否回答你的問題 – juanpastas

回答

0

您可以在您的_.each函數中使用this.collection.models,或者簡單地使用this.collection.each,因爲它在Backbone.Collection中混合使用。但是,我不確定是否每次渲染時都要重新計算它 - 我猜this.parentTreeId不會更改,因此您可以在initialize中執行此操作。