Initialisieren Winkel-Dienst (Werks -) beim start der Anwendung
In meinem Winkel-Anwendung, die ich hinzufügen tracing-Funktionalität, die sollten als eigenes plugin, also wenn das script in HTML-Winkel anlegen sollte, service und initialisieren (starten) es. Plugin-service, weil es zwingende Abhängigkeit auf $rootScope
.
Für die Implementierung, die ich wählen zu verwenden, Winkel-Fabrik, wie (code ist in myservice.js
):
angular.module('app').factory('mysevice', ['$rootScope', '$interval', serviceFunc]);
function serviceFunc($rootScope, $interval) {
return {
run: function () { ... }
}
}
Und jetzt habe ich das problem, wie man sofort initialisieren. Meine Lösung ist die Verbesserung Winkel-app run
Funktion (code ist in myservice.js):
window.app.run(['mysevice', function (srvc) {
srvc.run();
}]);
Dem app definiert, die in separaten main app.js Datei wie:
var app = window.app = angular.module('app', [...]);
app.run(['$state', 'breeze', ...,
function ($state, breeze, ...) { ..real initialization.. }
Der code ist in Ordnung. Sowohl Haupt - run
und run
für myservice
Anrufe sind in Ordnung. Die Anwendung zusammen mit dem service-arbeiten gut, aber der code sieht hässlich, vor allem die Speicherung der app auf das Globale window-Objekt und multicasting die run
Funktion.
Gibt es eine bessere Art und Weise zu tun, Winkel-Dienst, und initialisieren Sie es sofort nach dem app beginnt, mit einigen anderen Winkel-services Abhängigkeiten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie anrufen
angular.module('app').run(function(){...})
. So dass Sie nicht brauchen eine Globale variable mehr.Beispiel:
angular.module('app').run(...)
funktioniert sehr gut!