угловой $ scope. $ on не работает

0

Я стучу в голову этим. Моя структура контроллера - appController вверху, затем mapController. все остальные контроллеры вложены и параллельны друг другу. они создаются с изменением состояния ui-view ui-router.

В моем контроллере карты у меня это внутри функции

$scope.$broadcast('selectedIdsForExport', selectedIds);

это работает. функция $ on находится внутри контрольного элемента chartController, который только что был создан с изменением состояния.

$scope.$on('selectedIdsForExport', function (event, selectedIds) {

это ударяется из трансляции. но он не входит в функцию.it проскакивает через него. Это где я потерян. У меня есть функция $ on внутри функции $ watch, я думал, что это может быть проблемой, но если это проблема, функция $ on не будет удалена? Неужели я ошибаюсь?

как я могу избежать этого?

обратите внимание, что внутри моего mapController у меня есть 2 функции, которые имеют одну и ту же функцию широковещания. Это не должно быть проблемой? также я два chartControllers, которые имеют ту же функцию $ on. Но если это была проблема, точка останова не поймала бы функцию $ on, которую я пытаюсь ввести. это верно? вот несколько скриншотов, которые могут помочь. на моей странице load/refresh это шаблон. это работает правильно Изображение 174551

когда я нажимаю на вкладку для переключения диаграмм, это шаблон. Изображение 174551

здесь он пропускает функцию $ on

  • 0
    Можете ли вы опубликовать скрипку или планку, иллюстрирующую проблему? Я также удалил бы $ on из $ watch просто с точки зрения качества кода.
  • 1
    Зачем вам включать слушателя в $ watcher?
Показать ещё 3 комментария
Теги:

1 ответ

1
Лучший ответ

Я думаю, что это проблема родительского и дочернего приоритетов, называя их $ on и $ broadcast.

прочитайте следующий вопрос о стеке.

Работа с $ scope. $ Emit и. $ On

Ещё вопросы

Сообщество Overcoder
Наверх
Меню