Взаимодействие разных моделей и view в Backbone?

Существуют два отдельных модуля: А и В.
У них есть соответственно A.view и A.model, а так же B.view и B.model.

По событию в B.view меняется B.model. Но мне необходимо, чтобы A.model так же менялась по этому событию. То есть она должна слушать события B.model

Для этого существуют контроллеры - отдельные, так сказать, сущности. Но в Backbone контроллером является View. Там мы все слушаем и оттуда же передаем в привязанную к вьюхе модель задачу что-то там изменить. Но в вьюхе B.view не привязана A.model, они вообще ничего друг о друге не знают.

Как решается этот вопрос в рамках идеологии Backbone?
Как решить его вообще я понимаю, то в этом случае мне Backbone становится скорее помехой, чем помощником. Поэтому хотелось бы понять как сделать это идеологически верно.
  • Вопрос задан
  • 249 просмотров
Решения вопроса 2
@Elizavetta
Matroid: gamedev/js-разработка
Но мне необходимо, чтобы A.model так же менялась по этому событию. То есть она должна слушать события B.model

listenTo не подходит ?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@amyalichkin
не стоит из вьюхи менять модель, чревато...
один из вариантов:
Backbone объект сам расширен от Backbone.Events, поэтому его можно использовать как шину сообщений
и тут нам приходит некоторое подобие flux (backbonejs.org/#Events)
1) вьюха B возбуждает событие (trigger) на Backbone объекте с отправкой нужных
2) модель A и B слушают это событие на шине, и обновляют себя
3) вьюхи A и B подписаны на обновления соих моделей

иногда не стоит передавать модель во вьюху, стоит завести локальный StateManager -> либо модель, либо dispatcher
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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