2012-06-06 2 views
0

Я внедряю Blog Engine в качестве учебного упражнения для новой работы. У меня есть класс Backbone.js Collection, называемый BlogList, который состоит из объектов BlogModel (BlogModel - это отдельная запись в блог). У меня есть masterBlogList, который хранит все записи в блоге в течение всего срока службы приложения (я понимаю, что это не реалистичный дизайн, но он является частью спецификации).Добавление моделей в коллекцию Backbone.js Silently Fails

Я решил использовать 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, а также новый App.BlogModel (postModel.toJSON()).

Любая помощь будет чрезвычайно оценена!

+0

'self.add (postModel);' не работает? что 'console.log (postModel)' внутри 'sourceList.each' говорит? – theotheo

ответ

0

Извините, что никого не беспокоило: <, но я получил его работу. Код действительно работает, как написано выше. Проблема в том, что мои критерии поиска отфильтровывали все сообщения, поэтому я ничего не видел. Конец длинного дня! Спасибо тем, кто пытался мне помочь ...

Смежные вопросы