Принудительная директива всегда загружать до контроллера - PullRequest
1 голос
/ 07 апреля 2020

Я работаю над проблемой пользовательского интерфейса. В порядке загрузки происходит пропуски зажигания, которые случаются 1 из 50 или около того. Приложение Angular JS имеет общую директиву в качестве панели кнопок навигации, и эта часть используется большинством других контроллеров.

  1. Обычный порядок срабатывания

    • ButtonController.init () <- Установить все кнопки на скрытые </p>

    • EditGroupController.init () <- Установить все кнопки на основе данных сервисного вызова </p>

  2. Когда возникает проблема порядка запуска

    • EditGroupController.init () <- Установить все кнопки на основе данных вызова службы </li>
    • ButtonController.init () <- Установить все кнопки скрытыми </li>

В приведенном выше сценарии 2 EditGroupController пытается вызвать событие для ButtonController через:

$rootScope.$broadcast('setHeadersButtons', buttons); 

Однако, когда я прослеживаю внутренний код angular, появляется ветвь logi c, где он ищет зарегистрированный слушатель с таким именем, и он не находит его для запуска, потому что модуль не был загружен.

Я помню, что в приложении Angular 7 я использовал APP_INITIALIZER, чтобы сначала загрузить часть ядра. Извините, если моя формулировка не точная, передний конец / angular не моя специальность, и это несколько упало мне на колени. Есть ли способ убедиться, что директива в Angular JS загружена перед любыми другими частями?

Существует app.route. js, могу ли я принудительно загрузить директиву туда?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...