Marionette.js, как правильно хранить коллекцию, которая используется несколькими модулями?

Направьте на путь истинный!
Может я чего то не понимаю, но если более предметно говорить то у нас есть, к примеру, коллекция пользователей (она должна всегда быть в актуальном состоянии, то есть регулярно синхронизируется с сервером), в модуле управления пользователями мы создаем\редактируем etc... , соответственно есть другой модуль в котором нам надо знать все о всех пользователях. Собственно как такое правильно делать?
Единственный вариант который я вижу, так это хранить в одном модуле, а другой модуль будет получать через request/response. Но в этом случае встает вопрос что делать если модуль в котором хранится коллекция был остановлен...
PS: Если вопрос немного сумбурный, уточняйте детали :) я еще только в процессе изучения марионетки
  • Вопрос задан
  • 2892 просмотра
Решения вопроса 1
aen
@aen
Keep calm and 'use strict';
Если вам нужно, чтобы ваша коллекция работала и была доступна всегда, то нет никакого смысла хранить ее в модуле, в котором есть что-то еще. Она отдельная сущность, доступ к которой вам нужно организовать через шину событий, которую вам даст Backbone.Wreqr.

В вашем описании "модуль пользователей" не тождественнен коллекции. Насколько я понимаю, у вас есть некий кусок логики, который отвечает за пользователей и который работает с коллекцией. Тогда в вашем случае вам надо выключать только этот кусок логики, а коллекцию оставить в покое. Тогда доступ к ней будет всегда.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Kaer_Morchen
@Kaer_Morchen
Разрабатываю web-приложения.
Не пользовался Marionette.js, но в ember.js сделано так - существует хранилище (store) которое хранит в себе модели, догружает недостающие и отдает их по запросу. Само хранилище через dependency injection доступно во всех местах где это надо (в роуте, в контроллере и тд.) Хранилище инициализируется во время старта приложения и никак не выключается, это независимый объект. Вполне зачетное решение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы