Документация AngularJS app.run()?

Как и где используется app.run()? После определения модуля, после app.config() или после app.controller()?

Я принимаю BreezeJS Angular Q, который спрашивает, можно ли запустить определенный код в функции app.run().

Ответ 1

Здесь вызывающий порядок:

  • app.config()
  • app.run()
  • директивные функции компиляции (если они находятся в dom)
  • app.controller()
  • функции директивных ссылок (опять же, если они найдены)

Здесь простая демонстрация, где вы можете наблюдать за каждым из них (и экспериментировать, если хотите).

От Angular документации по модулю:

Запустить блоки - выполнить выполнение после создания инжектора и используется для запуска     выражение. Только экземпляры и константы могут быть введены в блоки запуска. Это необходимо для предотвращения     дальнейшая конфигурация системы во время выполнения приложения.

Блоки запуска являются наиболее близкими в Angular к основному методу. Прогон block - это код, который нужно запустить для запуска приложения. Это выполняется после настройки всей службы и инжектор был создан. Блоки запуска обычно содержат код, который трудно провести единичный тест, и по этой причине следует объявить в изолированном модулей, чтобы их можно было игнорировать в модульных тестах.

Одна из ситуаций, когда используются блоки запуска, находится во время аутентификации.

Ответ 2

В частности...

Как и где используется app.run()? После определения модуля или после app.config(), после app.controller()?

Где:

В вашем package.js Например. /packages/dashboard/public/controllers/dashboard.js

Как:

Сделайте это так:

var app = angular.module('mean.dashboard', ['ui.bootstrap']);

app.controller('DashboardController', ['$scope', 'Global', 'Dashboard',
  function($scope, Global, Dashboard) {
    $scope.global = Global;
    $scope.package = {
      name: 'dashboard'
    };

    // ...

  }
]);

app.run(function(editableOptions) {
  editableOptions.theme = 'bs3'; // bootstrap3 theme. Can be also 'bs2', 'default'
});