2015-12-04 4 views
0

Я сделал это с broadcast событием в $rootScope. Теперь я пытаюсь сделать это, не используя $rootScope. Это возможно?

Вот код может проверить, что я сделал с $rootScope

Example code here

+0

Почему вы хотите сделать это без корнеплодов? есть способы обмена данными между контроллерами, использующими сервис, а также ... но было бы лучше, если бы мы знали причину – gaurav5430

+0

нет особой причины. Только для знания. Это возможно ..? – Thusithz

+1

Да, это возможно с помощью сервисов, и вы можете также наблюдать за переменными внутри контроллеров вместо трансляции, но общая вещь будет похожа на то, что вы делаете прямо сейчас, вам, как правило, потребуется другая область для обмена данными между двумя независимыми контроллерами – gaurav5430

ответ

1

Для обмена данными между контроллерами с использованием событий всегда нужен масштаб, что это до иерархии областей Оба контроллера, так как широковещательные события пузырь вниз иерархию областей от родителя к детям. Потому что $ rootScope - это самая верхняя область, которую он сохраняет, чтобы использовать ее для трансляции. Альтернативным решением будет добавление функций часов для обоих контроллеров, наблюдающих переменную в инжектируемой службе. Потому что услуги - это синглтоны, это тоже будет хорошо.