Directives
Der@Directive-Decorater erlaubt es uns unsere eigenen Direktiven zu erstellen. Mit einer Direktive können wir ein gewisses Verhalten zu einer gewissen Komponente bzw. einem Element hinzufügen.
Der
@HostBinding-Decorator bindet sich an den Host, also das Element oder die Komponente, an welche die Direktive angehängt wird. Dieses Host Binding können wir dann nutzen, um ein Property des Hosts zu ändern.Pipes
Der@Pipe-Decorater erlaubt es uns eigene Pipes zu erstellen, um Daten zu filtern, die dem Nutzer angezeigt werden.
reverse me umzukehren.
Services
Um einen Service zu erstellen nutzen wir den@Injectable-Decorator. Injectables stehen in engem Zusammenhang mit dem Konzept der Dependency Injection in Angular. Es steht auch in Zusammenhang mit einigen Aspekten der Architektur, wie dem Prinzip der Single Responsibility.
Oftmals müssen wir in unseren Komponenten Daten anzeigen, welche von einer API kommen. Unsere Komponente müsste einen HTTP-Request machen, um die Daten abzurufen. Das ist jedoch nicht ideal aus folgenden Gründen:
- Es fügt der Komponente zusätzliche Verantwortlichkeiten zu. Unsere Komponente soll nur diese Liste anzeigen und sich nicht um die Business-Logik kümmern.
- Was, wenn eine andere Komponente ebenfalls Zugriff auf diese Daten braucht? Wenn wir das in unserer Komponente machen, können andere Komponenten nicht auf die Daten zugreifen und es muss erneut eine Request gemacht werden.
providedIn-Property bereitstellen. Durch die Bereitstellung dieses Services in der root wird eine einzige Instanz davon für die gesamte Anwendung gemeinsam genutzt. Das bedeutet, wenn eine Komponente eine Änderung an someData auslöst, können alle anderen Komponenten auf dieselben aktualisierten Daten zugreifen. Auch dies hängt mit der Dependency Injection zusammen, auf die wir später noch näher eingehen werden.
Um nun den Service zu nutzen, müssen wir ihn wie folgt injizieren.