0

我正在实施博客引擎作为新工作的学习练习。我有一个名为 BlogList 的 Backbone.js Collection 类,它由 BlogModel 对象组成(BlogModel 是博客的单个帖子)。我有一个 masterBlogList,它在应用程序的整个生命周期内将所有博客文章保存在内存中(我意识到这不是一个现实的设计,但它是规范的一部分)。

我选择使用 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);
    },

(继续...)

即使是关于 foo 的最后一点也不起作用。我还尝试添加 postModel 的 clone() 以及新的 App.BlogModel(postModel.toJSON())。

任何帮助将不胜感激!

4

1 回答 1

1

很抱歉打扰了任何人:<,但我得到了它的工作。代码实际上确实像上面写的那样工作。问题是我的搜索条件过滤掉了所有帖子,所以我什么也没看到。结束漫长的一天!感谢那些试图帮助我的人...

于 2012-06-06T22:43:33.380 回答