Добавление новых данных в реляционное отношение магистрали

Я пытаюсь разработать систему типа «загрузить больше», в которой каждый раз, когда вы нажимаете «загрузить больше», вы добавляете данные в существующую коллекцию. Это грубый набросок того, как выглядит пользовательский интерфейс.

Все работает очень хорошо, за исключением того, что каждый раз, когда я перезапускаю

items.fetch

Что делает: переопределяет всю коллекцию новыми данными.

Что я хочу сделать: я хочу, чтобы новые возвращаемые записи добавлялись в коллекцию записей, а не переопределяли старые «записи».

Как я могу заставить эту работу работать так, чтобы вновь извлеченные записи добавлялись к существующим записям, а не переопределялись?


person user391986    schedule 09.11.2015    source источник


Ответы (2)


Добавьте { remove: false } к вашему fetch звонку:

items.fetch({ remove: false, data: { nextId: this.info.get('nextId') } });

Здесь происходит то, что Collection#fetch синхронизирует свои модели с данными, возвращаемыми сервером. Это включает в себя добавление новых моделей, обновление уже существующих моделей и удаление моделей, не включенных в ответ.

Поведение выборки можно настроить с помощью доступных параметров set. Например, чтобы получить коллекцию, получая событие «добавить» для каждой новой модели и событие «изменить» для каждой измененной существующей модели, ничего не удаляя: collection.fetch({remove: false})

Доступные параметры set: add, remove и merge. Установка одного (или всех) значения false отключит эту функцию в файле fetch.

Похоже, вы просто хотите { remove: false }, оставив функции add и merge.

person Justin    schedule 09.11.2015
comment
о ничего себе, это будет потрясающе, если это действительно сработает для магистральных отношений автоматически, я попробую это, спасибо. Я предполагаю, что это сработало бы идеально, если бы я выполнял выборку непосредственно из самой коллекции. Здесь выборка будет осуществляться в родительской реляционной модели, в которой коллекция является отношением. - person user391986; 09.11.2015
comment
Это волшебно ... это работает, хотя я действительно не понимаю, как это сделать, поскольку коллекция находится не в фактическом объекте, для которого я вызываю выборку, а в отношении самого себя! это мило тай - person user391986; 10.11.2015