Угловые архитектурные проблемы MVVM + PubSub
Представьте, что у меня есть приложение, структурированное следующим образом:
У меня есть родительский контроллер. Его задача - просто фиксировать события и уведомлять различные службы об этих событиях. Как правило, это бизнес-модели, транслирующие изменения, и другие бизнес-модели, реагирующие на это изменение. Кажется, это хорошо работает, кроме того, что у меня есть два камня преткновения:
Мои ViewModels уведомляются таким образом. UserService сообщит, что выбранный пользователь изменился, и в контроллере я сообщу соответствующим моделям представления об этом изменении. В идеале я бы хотел, чтобы мои виртуальные машины слушали модель напрямую, однако все мои виртуальные машины используются директивами (поэтому мои виртуальные машины еще не созданы, поэтому мои подписчики не будут уволены). Эти директивы не всегда отображаются на экране, однако я заполняю их соответствующие виртуальные машины, готовые к моменту создания директивы. Есть ли мнения / предложения по этому подходу?
Моя следующая проблема - представьте, что у моего пользователя много аккаунтов. То, что я хотел бы сделать, это иметь возможность сравнивать свои счета бок о бок в решении, подобном вкладке. Это становится трудным, потому что все мои объекты статичны и, следовательно, имеют знание только одной учетной записи. Я все еще хочу использовать этот шаблон pub / sub, но мне нужен какой-то способ уведомления определенного аккаунта (вкладки) о любых изменениях. Будут ли мне нужны мои статические бизнес-модели, чтобы содержать состояние для каждой учетной записи / вкладки, которую я просматриваю? IE, представляете каждую вкладку внутри своего рода массива / объекта внутри каждой статической бизнес-модели?
Любые предложения будут ценны!
Том