Я разрабатываю приложение JavaScript, которое должно отображать визуализацию либо на основе настроек в хеше URL, либо на основе взаимодействия с пользователем.
(На данный момент я использую Backbone.js для MVC, но я думаю, что эти вопросы можно считать независимыми от фреймворка...?)
Допустим, пользователь просматривает состояние приложения с выбранными индикаторами A и B. Пользователь меняет индикатор B на C, что происходит?
Что ж, изменение индикатора должно заставить модель ждать, пока новые данные будут получены и обработаны.
... и тогда, конечно, изменение индикатора повлияет на разные представления:
- Доступные объекты для отображения изменятся
- Весы будут меняться
- Метка индикатора изменится и т.д. и т.п...
На данном этапе возникает один вопрос: что делать со всеми этими зависимыми/вычисляемыми переменными?
Должна ли модель в этом случае также отслеживать доступность данных, масштаб и т. д. на основе изменения индикатора? И должен ли он также запускать события изменения для всех этих вычисляемых атрибутов?
В любом случае, «главный контроллер визуализации» теперь должен быть уведомлен об обновлении модели, но как это сделать?
В этом случае произошло изменение индикатора, которое должно привести к добавлению и удалению значков, изменению меток и т. д. и т. д.
В другом сценарии может измениться только год. Должен ли Контроллер запустить другой путь?
А в третьем сценарии могут измениться и год, и индикаторы (например, когда установлен начальный хэш URL)... еще один набор функций, которые будут запускаться в цепочке?
Я ищу надежный способ обработки этих различных сценариев, чтобы отслеживать, что и когда должно произойти. Что меня особенно интересует, так это ваше мнение о том, какие атрибуты следует сохранить в модели и как разместить функции контроллера, чтобы иметь возможность отображать небольшие изменения взаимодействия с пользователем в модели, а также изменения нескольких атрибутов. сильный>