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.

InformationsquelleAutor Grigorii | 2015-05-29
Schreibe einen Kommentar