У меня есть коллекция объектов, которые будут обновляться навалом (не обязательно все в то же время, но более одного).Backbone.js обновление коллекции навалом
Поэтому мне нужно отправлять обновления на сервер в массовом порядке (то есть не один запрос для каждого обновленного объекта), и мне нужно делать частичные обновления (т. Е. Только обновлять объекты, которые изменились).
Проблемы я наткнулась:
- Там нет
save()
метода на коллекции (странно, учитывая, что естьfetch()
метод) - Там нет встроенной в отслеживании моделей, которые были изменены в коллекции начиная с последней синхронизации с сервером.
Есть ли чистый, элегантный способ достичь этого?
Я исследовал и пробовал несколько вещей, но все решения довольно неприятные и чрезмерно сложные - что неприемлемо для рамки, предназначенной для упрощения такого рода вещей.
Конечно, есть достойный способ сделать такое обычное дело в магистрали. Или я должен использовать другую структуру, например. Угловая JS?
Почему вам нужно обновить элементы коллекции навалом? Могут ли они быть изменены ** в то же время ** в вашем приложении? Если нет, то обычной практикой является вызов метода 'save' модели, как только какой-либо элемент будет изменен. – hindmost
@hindmost да, они могут быть изменены в одно и то же время. Существует список элементов с флажками для выбора элементов, и пользователь может выполнять изменения во всех выбранных элементах одновременно (например, изменение состояния 10 элементов одновременно - я не хочу, чтобы мой сервер получал 10 аякс-запросов для этого) – developerbmw
Затем вам определенно нужно изменить структуру данных приложения. Вы не должны создавать коллекцию на модели, содержащей одно логическое значение (checkbox checked state). Вместо использования коллекции в вашем случае лучше использовать одиночную модель, содержащую множество состояний флажков. – hindmost