Подтвердить что ты не робот

.config,.run, AppCtrl - куда поместить маршруты?

Я хотел узнать разницу между функциями .config и .run в AngularJS. Я использовал .config для настройки маршрутов, но у меня было несколько $on для просмотра событий изменения маршрута и успешных событий.

Затем я переместил часть этого кода в .run, поскольку у меня были некоторые проблемы с инъекциями зависимостей в .config.

Я, наконец, переместил часть этого в CommonAppController, который я установил на моем <body>.

У меня также было 2 .config, и, похоже, он работает нормально, но верно ли это неправильно?

Может кто-нибудь дать небольшое представление о том, какой метод использовать?

4b9b3361

Ответ 1

Блоки конфигурации и блоки запуска выполняются в разных точках бутстрапа приложения и имеют в своем распоряжении разные локаторы инъекций. Вот краткое описание того, что вы можете найти в документации AngularJS.

Блоки конфигурации (зарегистрированные с помощью module.config()) выполняются во время регистрации провайдера и могут быть введены только поставщиками и константами (см. module.provider() и module.constant()). Обычно вы должны настраивать все приложения, такие как $routeProvider. Материал, который необходимо настроить до создания служб.

Блоки запуска (зарегистрированные с module.run()) выполняются после того, как инжектор имеет всех поставщиков. Теперь все инстанции и константы могут быть введены. Обычно вы должны настраивать службы, $rootScope, события и т.д.

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

Ответ 2

Блок .config выполняется во время фазы регистрации и конфигурации поставщика. Это блок уровня модуля.

Блок .run выполняется после блока конфигурации. Он использовал для инъекций услуги и константы.