Comment et où est utilisée app.run()
? Après la définition du module, après app.config()
ou après app.controller()
?
J'adopte le BreezeJS Angular Q , qui demande si certains codes peuvent être exécutés dans la fonction app.run()
.
Voici l'ordre d'appel:
app.config()
app.run()
app.controller()
Voici une démo simple où vous pouvez voir chacun s’exécuter (et expérimenter si vous le souhaitez).
De documentation du module d'Angular :
Les blocs d'exécution - sont exécutés après la création de l'injecteur et sont utilisés pour relancer l'application. Seules des instances et des constantes peuvent être injectées dans des blocs d'exécution. Cela empêche toute configuration ultérieure du système pendant l'exécution de l'application.
Les blocs d'exécution sont l'élément le plus proche de Angular de la méthode principale. Un bloc d'exécution est le code qui doit être exécuté pour lancer l'application. Il est exécuté une fois que tous les services ont été configurés et que l'injecteur a été créé. Les blocs d'exécution contiennent généralement du code qui est difficile à tester, et pour cette raison, il convient de le déclarer dans des modules isolés, afin de pouvoir les ignorer dans les tests unitaires.
Une situation dans laquelle les blocs d'exécution sont utilisés est pendant authentifications .
Comment et où est utilisée
app.run()
? Après la définition du module ou aprèsapp.config()
, aprèsapp.controller()
?
Dans votre package.js E.g. /packages/dashboard/public/controllers/dashboard.js
Faites-le ressembler à ceci
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'
});