Wie und wo wird es app.run()
eingesetzt? Nach der Moduldefinition, nach app.config()
oder nach app.controller()
?
Ich übernehme das BreezeJS Angular Q , das fragt, ob bestimmter Code in der app.run()
Funktion ausgeführt werden kann.
Wie und wo wird es app.run()
eingesetzt? Nach der Moduldefinition, nach app.config()
oder nach app.controller()
?
Ich übernehme das BreezeJS Angular Q , das fragt, ob bestimmter Code in der app.run()
Funktion ausgeführt werden kann.
Antworten:
Hier ist die Anrufreihenfolge:
app.config()
app.run()
app.controller()
Hier ist eine einfache Demo, in der Sie jede Ausführung beobachten können (und experimentieren können, wenn Sie möchten).
Aus Angulars Moduldokumenten :
Blöcke ausführen - werden ausgeführt, nachdem der Injektor erstellt wurde, und werden zum Kickstart der Anwendung verwendet. In Ausführungsblöcke können nur Instanzen und Konstanten eingefügt werden. Dies soll eine weitere Systemkonfiguration während der Laufzeit der Anwendung verhindern.
Laufblöcke sind in Angular der Hauptmethode am nächsten. Ein Ausführungsblock ist der Code, der ausgeführt werden muss, um die Anwendung zu starten. Es wird ausgeführt, nachdem alle Dienste konfiguriert und der Injektor erstellt wurden. Ausführungsblöcke enthalten normalerweise Code, der schwer zu testen ist. Aus diesem Grund sollten sie in isolierten Modulen deklariert werden, damit sie in den Komponententests ignoriert werden können.
Eine Situation, in der Laufblöcke verwendet werden, ist die Authentifizierung .
Wie und wo wird es
app.run()
eingesetzt? Nach der Moduldefinition oder nachapp.config()
, nachapp.controller()
?
In Ihrem package.js zB /packages/dashboard/public/controllers/dashboard.js
Lass es so aussehen
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'
});