Angular ermöglicht es dem Dienst, andere Dienste als Abhängigkeiten zu deklarieren, wobei der Konstruktor verwendet wird, der beim Instanziieren selbst verwendet wird.
Um Abhängigkeiten zu deklarieren, müssen wir sie in der Factory -Methode -Deklaration angeben und das Attribut $ Inject (String Identification Array) verwenden oder Array -Notation in der Fabrikmethode verwenden.
Normalerweise kann die Erklärung der $ Inject -Eigenschaft verworfen werden (d. H. Die in //www.vevb.com/article/91815.htm genannte implizite Abhängigkeitsinjektion. Dies ist jedoch eine experimentelle Eigenschaft und wird nach Kompression und Verschleierung fehlschlagen, bitte mit Vorsicht!).
Verwenden Sie Array -Notation
Funktion MYMODULECFGFN ($ CIP.) {$ ciply.factory ('MyService', ['DEP1', 'DEP2', Funktion (DEP1, DEP2) {}]);}Verwenden Sie die $ Inject -Eigenschaft
Funktion myModulecfgfn ($ bereitgestellt) {var myServiceFactory = Funktion (DEP1, DEP2) {}; MyServiceFactory. $ inject = ['dep1', 'DEP2']; $ ciples.factory ('MyService', MyServiceFactory); }Verwendung implizite DI (inkompatibel mit dem Verschleierung des Kompressionscodes)
Funktion MYMODULECFGFN ($ CIP.) {$ ciplipt.factory ('MyService', Funktion (DEP1, DEP2) {});}Hier ist ein Beispiel, in dem es zwei Dienste gibt, und es gibt Abhängigkeiten zwischen ihnen sowie einige andere von Angular erbrachte Dienste.
/*** Batchlog -Dienst ermöglicht Nachrichten, eine Warteschlange im Speicher zu bilden, die alle 50 Sekunden einmal spülen. * * @param { *} Nachricht zur Meldung angemeldet werden. */ Funktion BatchLogmodule ($ ciplice) {$ ciples.factory ('batchlog', ['$ timeout', '$ log', function ($ timeout, $ log) {var messagequeue = []; Funktion log () {if (messageQueue) {$ log ('batchlog message:', messquue); log (); / *** RoutetEmplatemonitor überwacht die Änderungen jeder Route, und jeder Bi'anu wird sie über den Batchlog -Service aufzeichnen. {batchlog ($ route.current? $ route.current.template: null); } // Erhalten Sie den Hauptdienst, führen Sie die Anwendung aus (hören Sie sich das Ereignis an) angular.injector ([batchlogModule]). Get ('routetEmplatemonitor');Dinge zu beachten im Beispiel:
Die oben genannten ist die Zusammenstellung von AngularJS -Verwaltungsdiensteninformationen. Wir werden in Zukunft weiterhin relevante Informationen hinzufügen. Vielen Dank für Ihre Unterstützung für diese Website!