Как организовать модель Backbone, используемую несколькими представлениями? - PullRequest
3 голосов
/ 29 февраля 2012

Так вот, это тощий ... (я всегда говорю как гангстер 30-х годов)

У меня есть две модели - ты видишь: Компания + Дата

Настройка
Модель компании прикреплена к представлению раскрывающегося списка.Получает список компаний с сервера.Дата установлена ​​на сегодня и прикреплена к селектору даты.При инициализации эти модели присоединяются к соответствующим представлениям через маршрутизатор приложения.Они составляют основную навигацию и всегда присутствуют.

Проблема
Проблема в том, что эти модели + данные будут использоваться несколькими представлениями, и я хотел бы иметь более чистый способпередать их этим взглядам.Поэтому я использовал агрегатор событий, который публикует события вместе с моделью при их изменении.Однако это не поможет при инициализации новых представлений, поскольку модели не изменились.

Четыре варианта

  1. Сохранение модели датыв местном хранилище.Получить его, когда модель инициализируется новым представлением.Извлечение данных компании из кэша при инициализации модели новым представлением.

  2. Передача любой модели из маршрутизатора приложения в каждое новое представление.Привязать изменения модели к представлению.

  3. Предпочитать: Использовать мою систему событий, но найти обходной путь для инициализации нового представления.

  4. Бросить рукивстань и произнеси "sc *** it" и кричи на леди через зал в течение часа

1 Ответ

2 голосов
/ 01 марта 2012

Придерживайтесь # 2 - Передача вашей модели в каждый вид, когда она создается.Это классическая архитектура MVC, и вы будете хорошо придерживаться этого соглашения.Типичный MVC имеет каждое представление, прослушивающее события из модели, сохраненные в качестве ссылки, чтобы представление могло обновляться само при изменении модели.Обычно объект модели передается в конструкторе представления.

...