Правда ли, что в AngularJS, когда я транслирую на все контроллеры во время инициализации контроллера, я должен установить Timeout для широковещательной передачи?

Другими словами, правда ли, что я должен ждать следующего цикла событий для трансляции, используя $rootScope.broadcast(), так что другие контроллеры используют $rootScope.on() можно забрать транслируемое событие?

Это не обычный процесс приложения, но, скажем, если у нас есть демонстрационный режим в приложении, который бы зашунтировал некоторую логику, и не нуждался бы в том, чтобы пойти на сервер, чтобы получить что-то, но мог бы предоставить демонстрационные данные, используя broadcast()Это правда, что мы должны использовать

setTimeout(function() { 
    $rootScope.broadcast(...);
}, 0);

чтобы другие контролеры его подхватили?

Причина в том, что другие контроллеры могут еще не существовать. Если модуль приложения определяет 5 контроллеров или использует внедрение зависимости для объявления, это зависит от 2 наборов контроллеров, abc.xyz.controllers а также abc.efg.controllers,

Поскольку определение контроллера

.controller("name", function(...) {

})

таким образом, предоставляя функцию, вы не знаете, когда вызывается функция (для создания контроллера), но при условии, что все создания были выполнены в первом цикле событий, тогда, если вы будете ждать один цикл для широковещательной передачи, то вы можете быть уверены, что все контроллеры подберут трансляцию? Это также официально задокументировано?

0 ответов

Другие вопросы по тегам