Я хочу обрабатывать два независимых контроллера без трансляции $rootScope в AngularJS
Я сделал это с broadcast
событие в $rootScope
, Сейчас я пытаюсь сделать это без использования $rootScope
, Это возможно?
Вот код может проверить, что я сделал с $rootScope
1 ответ
Решение
Для обмена данными между контроллерами, использующими события, всегда нужна область действия, которая соответствует иерархии обеих областей контроллера, поскольку широковещательные события распространяются по иерархии области действия от родителя к потомкам. Поскольку $rootScope является самой верхней областью, его можно сохранить для трансляции. Альтернативным решением было бы добавить функции наблюдения к обоим контроллерам, наблюдающим переменную во внедренном сервисе. Поскольку услуги - это одиночные услуги, это тоже будет хорошо.