2013-10-30 56 views
0

我試圖構建一個應用程序,該應用程序允許您在多個位置的視圖中創建項目。嘗試將集合添加到模型並將其呈現在視圖中的多個位置

例如,我可以在集合中創建新模型時從集合中添加模型。

我遇到的問題是,當我將集合添加到模型並迭代時,它將爲每個循環添加集合。所以它最終會在模型中重複收集很多。

父模型渲染具有以下循環:

 this.noteTasksViewAdding = new NoteTaskListViewAdding({ collection: tasks }); 
     $('.note-tasks-list-all').append(this.noteTasksViewAdding.render().el); 
     this.collection.each(function(note){ 
      var view = new NoteView({ model: note }); 
      $('#items-list').prepend(view.render().el); 
     }); 

,則該模型具有以下渲染它:

render: function() { 
     this.noteTasksViewAdding = new NoteTaskListViewAdding({ collection: tasks }); 
     $('.note-tasks-list-all').append(this.noteTasksViewAdding.render().el); 
     this.$el.html(this.template(this.model.toJSON())); 
     return this; 
    } 

我希望有發生的是,收集被添加到渲染時的模型。對於如何更好地做到這一點,我願意接受任何建議。

謝謝!

回答

0

我也遇到了這個問題。解決方案是在設置集合之前清除視圖。在你的情況,當你設置父視圖,你可以這樣做:

$('.note-tasks-list-all').html(this.noteTasksViewAdding.render().el); 

然後你就可以添加你的集合成員。

+0

我做了一個可怕的工作提出這個問題。我創建了一個更好的一個在這裏:http://stackoverflow.com/questions/19736211/loading-collections-into-models-in-backbone-js - 測試你的答案一段時間工作,但我想我'在另一個地方丟失別的東西。感謝您的時間和精力。 –

相關問題