Heim >Web-Frontend >js-Tutorial >Wie viele Dienste gibt es in AngularJS? Detaillierte Analyse der Dienste in AngularJS

Wie viele Dienste gibt es in AngularJS? Detaillierte Analyse der Dienste in AngularJS

寻∝梦
寻∝梦Original
2018-09-08 16:51:371356Durchsuche

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

Gesamteinführung

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

Jeweilige Verwendung und Unterschiede

Anbieter

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

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

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

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')

Wert

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.)

Decorator

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.

Wann sollte man den Anbieter anstelle der Fabrik verwenden?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn