Heim >Web-Frontend >js-Tutorial >Wie viele Dienste gibt es in AngularJS? Detaillierte Analyse der Dienste in AngularJS
In diesem Artikel geht es hauptsächlich um die detaillierte Analyse mehrerer Dienste von AngularJS. Es gibt auch eine Einführung in die Verwendung und die Unterschiede der AngularJS-Dienste. Schauen wir uns nun gemeinsam diesen Artikel an
In einer gut geschichteten Angular-Anwendung, Controller This Die Schicht sollte sehr dünn sein. Mit anderen Worten: Der Großteil der Geschäftslogik und der persistenten Daten in der Anwendung sollte in den Dienst gestellt werden.
Aus diesem Grund ist es notwendig, die Unterschiede zwischen mehreren Anbietern in AngularJS zu verstehen.
Neue vom Anbieter erstellte Dienste können für die Injektion verwendet werden. Beinhaltet:
Anbieter
Fabrik
Service
Konstante
Wert
wird zur Generierung verwendet Ein konfigurierbarer Dienst besteht aus zwei Teilen. Auf die Variablen und Funktionen im ersten Teil kann in der Funktion app.config zugegriffen werden, und Sie können sie ändern, bevor an anderer Stelle auf sie zugegriffen wird. Die Definition lautet wie folgt:
app.provider('myProvider', function(){ var a = ''; var func = function(){}; })
Ändern Sie a in der app.config-Funktion. Dies ist auch der Grund, warum Provider verwendet wird, wenn es eine so einfache Factory gibt:
app.config(function(myProviderProvider){ myProvider.a = 'hello world'; })
Die Variablen in der Der zweite Teil und die Funktionen werden über die Funktion $get() zurückgegeben und können in jedem Controller aufgerufen werden, der den Anbieter übergibt.
app.provider('myProvider', function(){ this.$get = function(){ return { foo: function(){}, a: a } } })
factory gibt ein Objekt zurück. Erstellen Sie einfach ein Objekt, fügen Sie ihm Eigenschaften hinzu und geben Sie das Objekt zurück. Fügen Sie die Factory in den Controller ein, um alle ihre Eigenschaften zu nutzen.
app.factory('myFactory', function(){ var fac = {}; fac.a = 'hello world'; fac.foo = function(){}; return fac; })
Es ist ersichtlich, dass der zweite Parameter von Factory die Funktionsimplementierung ist, die $get im Anbieter entspricht.
service ähnelt einem Konstruktor. Er instanziiert das Objekt über das Schlüsselwort new und fügt diesem einige Eigenschaften und Methoden direkt hinzu .
app.service('myService', function(){ var a = ''; this.setA = function(){}; this.getA = function(){}; this.foo = function(){}; })
Der in myService eingefügte Controller kann auf die in myService daran gebundenen Methoden setA() , getA() und foo() zugreifen.
Konstante wird zum Definieren von Konstanten verwendet. Einmal definiert, können sie nicht geändert werden. Kann überall eingespritzt werden, kann aber nicht von Dekorateuren dekoriert werden.
app.constant('APP_KEY', 'a1s2d3f4')
Wie eine Konstante kann es zur Definition von Werten verwendet werden. Der Unterschied zur Konstante besteht jedoch darin, dass sie vom Dekorateur geändert und dekoriert werden kann und nicht in die Konfiguration eingefügt werden kann.
app.value('version', '1.0')
value wird normalerweise verwendet, um den Anfangswert für die Anwendung festzulegen. (Wenn Sie mehr erfahren möchten, besuchen Sie die Spalte AngularJS Development Manual auf der chinesischen PHP-Website, um mehr zu erfahren.)
ist etwas Besonderes, es ist kein Anbieter. Es wird zum Dekorieren anderer Anbieter außer Konstanten verwendet, da Konstanten, wie aus dem Quellcode hervorgeht, nicht über die Methode „Provider()“ erstellt werden.
Das Folgende ist ein Beispiel für die Verwendung von Decorator zum Dekorieren von Werten.
app.value('version', '1.0'); app.decorator('version', function ($delegate) { return $delegate + '.1'; })
Wenn Sie den vorherigen myService-Dienst verwenden möchten, ihm aber die gewünschte Begrüßungsfunktion fehlt. Kann der Service geändert werden? Die Antwort ist nein! Aber es kann dekoriert werden:
app.decorator('myService', function($delegate){ $delegate.greet = function(){ return "Hello, I am a new function of 'myService'"; } })
$delegate repräsentiert die eigentliche Dienstinstanz.
Die Möglichkeit, einen Dienst zu dekorieren, ist sehr praktisch, insbesondere wenn wir einen Drittanbieter-Dienst nutzen möchten. Zu diesem Zeitpunkt müssen wir den Code nicht in unser Projekt kopieren, sondern nur einige Änderungen vornehmen.
Provider ist eine erweiterte Version von Factory. Verwenden Sie den Anbieter, wenn eine konfigurierbare Factory benötigt wird.
Eine kurze Einführung in den Prozess der Ausführung einer Anwendung in AngularJS ist in zwei Phasen unterteilt: die Konfigurationsphase und die Ausführungsphase. In der Konfigurationsphase wird jeder Anbieter eingerichtet. Dies ist auch die Phase, in der alle Anweisungen, Controller, Filter und andere Dinge eingerichtet werden. Während der Ausführungsphase kompiliert AngularJS Ihr DOM und startet die Anwendung.
Dieser Artikel endet hier (wenn Sie mehr lesen möchten, besuchen Sie die Spalte „PHP Chinese User Manual“ , um mehr zu erfahren. Wenn Sie Fragen haben, können Sie unten eine Nachricht hinterlassen). .
Das obige ist der detaillierte Inhalt vonWie viele Dienste gibt es in AngularJS? Detaillierte Analyse der Dienste in AngularJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!