Я внедряю 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()).
Любая помощь будет чрезвычайно оценена!
'self.add (postModel);' не работает? что 'console.log (postModel)' внутри 'sourceList.each' говорит? – theotheo