Я стучу в голову этим. Моя структура контроллера - 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 это шаблон. это работает правильно
когда я нажимаю на вкладку для переключения диаграмм, это шаблон.
здесь он пропускает функцию $ on
Я думаю, что это проблема родительского и дочернего приоритетов, называя их $ on и $ broadcast.
прочитайте следующий вопрос о стеке.