Ich bin gespannt, was genau Dekoratoren in AngularJS sind. Es gibt nicht viele Informationen online für Dekorateure außer für einen Klappentext in der AngularJS documentation und eine kurze (wenn auch interessante) Erwähnung in einer youtube video.Was sind "Dekorateure" und wie werden sie verwendet?
die Winkel Jungs setzen es ein Dekorateur ist:
Dekoration der Service, ermöglicht es dem Dekorateur den Dienst Instanz Schaffung abzufangen. Die zurückgegebene Instanz kann die ursprüngliche Instanz oder eine neue Instanz sein, die an die ursprüngliche Instanz delegiert.
Ich weiß nicht wirklich, was das bedeutet , und ich bin nicht sicher, warum Sie diese Logik aus dem Dienst selbst trennen würden. Zum Beispiel, wenn ich unter verschiedenen Bedingungen etwas anderes zurückgeben wollte, würde ich einfach andere Argumente an die relevanten Funktionen übergeben oder eine andere Funktion verwenden, die diesen privaten Zustand teilt.
Ich bin immer noch eine Art AngularJS-Noob, also bin ich sicher, dass es nur Ignoranz und/oder schlechte Angewohnheiten sind, die ich abgeholt habe.
Super Beispiel. Ich habe mich gefragt, wie man die Funktionalität von Drittanbieter-Modulen erweitern kann, ohne sich in sie einzumischen –
Tun Dekorateure tatsächlich alle Instanzen eines Dienstes, oder sind sie nur auf das Modul beschränkt, das sie verziert? Mit anderen Worten sagen wir, dass ich Modul A habe, das einen Service von Modul B schmückt. Ich habe dann Modul C, das von Modul A und Modul B abhängt. Innerhalb von Modul C ist der Service von Modul B die ursprüngliche oder dekorierte Version? –
@JonJaques - Das ist eine gute Frage. Ich bin auf eine solche Situation nicht gestoßen. Wenn ich raten sollte, sollte die Version des Dienstes, den Modul C sieht, der von Modul A sein, aber ich kann das nicht sicher sagen, bis ich es selbst versuche. Warum schreibst du nicht einfach ein plunkr/jsffidle und experimentierst damit. Es wäre toll, wenn Sie Ihre Entdeckung mit uns teilen könnten. Prost. – tamakisquare