我正在實施Blog Engine作爲新工作的學習練習。我有一個名爲BlogList的Backbone.js集合類,它由BlogModel對象組成(一個BlogModel是博客中的一篇文章)。我有一個masterBlogList,它在應用程序的整個生命週期內保留所有的博客文章(我意識到這不是一個現實的設計,但它是規範的一部分)。將模型添加到Backbone.js集合默默無聞
我選擇使用masterBlogList來保存應用程序的規範狀態。所有新帖子,編輯等等都會持久保存到數據庫(MongoDB)以及masterBlogList中。當我想在masterBlogList中顯示帖子的一個子集時,我將它們複製到一個新的BlogList實例中,然後根據搜索條件縮小這個新實例的範圍。再一次,我意識到這可能不是最好的設計(克隆BlogModels和BlogLists),但這是我得到的,我不想重寫它。
問題是將一個BlogList複製到另一個不起作用。即使源列表非空,目標列表總是空的。我試圖用沒有運氣的方式來調試這種方式。這裏是BlogList源代碼的相關部分:即使對於富最後一位沒有工作
// BlogList
$ (function() {
App.BlogList = Backbone.Collection.extend ({
model : App.BlogModel,
url : '/blog-entries',
comparator : function (a) {
return -(new Date (a.get ('date')));
},
populateFromMemory : function (sourceList) {
// this.reset();
var self = this;
sourceList.each (function (postModel) {
self.add(postModel);
});
var foo = new App.BlogModel();
this.add(foo);
},
(續)
。我也嘗試添加postModel的clone()以及新的App.BlogModel(postModel.toJSON())。
任何幫助將不勝感激!
'self.add(postModel);'不起作用? 'sourceList.each'內的'console.log(postModel)'說了些什麼? – theotheo