$Injektor.instanziieren VS $Injektor.Holen VS $Injektor.invoke in angularjs
Was sind die Unterschiede zwischen $injector.instantiate
, $injector.get
und $injector.invoke
in AngularJS?
InformationsquelleAutor Shreyansh Bele | 2015-07-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Angesichts der folgenden Dienstleistung:
$Injektor.get(name, [Anrufer]);
Gibt eine Instanz des angeforderten Dienstes.
$Injektor.invoke(fn, [selbst -], [einheimischen]);
Ruft die bereitgestellte Methode auf und übergibt entlang der angegebenen Argumente aus dem $ - Injektor.
$Injektor.instanziieren(Typ, [einheimischen]);
Erstellt eine neue Instanz des gegebenen Typs. Dauert eine Konstruktor-Funktion, die ruft dann die neue Instanz mit der angegebenen Argumente im Konstruktor annotation.
Angenommen, das folgende 'class':
Nun, wenn wir wollten ein neue Person in unserem controller, wir könnten es so machen:
Vorstellen
Person
hatte ~20 oder so Abhängigkeiten, und wir holten die jede und jeden von Ihnen mit der$injector.get
Methode.Umständlich! Und - würden Sie benötigen, um Ihre Parameter & Argumente in sync. ugh.
Statt, Sie können dies tun:
Und - wenn wir wollten, könnten wir die Versorgung einheimischen der
.instantiate
nennen, so zu überschreiben, was die interne$injector.get()
würde normalerweise erhalten, wenn die Instanziierung.Ich hoffe, dass erklärt den Unterschied zwischen den drei. Wenn Sie weitere Informationen über Ihre Unterschiede, die ich würde empfehlen diesen Artikel:
Ich habe die Quelle vor mir, genau in diesem moment, aber ich denke, so ja. Überprüfen Sie die Quelle, Freund.
Diese Antwort sollte ein Teil der Winkel $Injektor-docs
können Sie uns noch ein Beispiel von
injector.invoke
mit echten use-case? DankGanz im Gegenteil, verwendet invoke Holen zu Holen Abhängigkeiten.
InformationsquelleAutor Kasper Lewau
Zusätzliche Marken zu Kasper Lewau Antwort, da kann ich nicht hinzufügen, Kommentare.
$Injektor.invoke(fn, [selbst -], [einheimischen], [serviceName]);
$Injektor.instanziieren(Typ, [einheimischen]);
InformationsquelleAutor Andrew Spoda