2017-11-13 4 views
0

Ich bin neu mit Angular. Ich folge einem Tutorial von diesem link, und ich habe versucht, etwas zu tun/hinzuzufügen, die nicht Teil dieses Tutorials ist. Ich fügte eine providers :[EmployeeService] Linie zu employee-list.component.ts und empployee.component.ts innerhalb @component hinzu, und es gibt Fehler zurück, der TypeError: Cannot read property 'push' of undefined sagte. Stellen Sie also fest, dass das Hinzufügen von providers :[EmployeeService] zu einigen Komponenten unnötig ist. Ich lese über Dependency Injection von diesem link, aber ich verstehe nicht wirklich, was ich wissen wollte. Kann mir jemand eine einfache Erklärung geben, wie/wann/wo ich die Provider einsetzen soll und wie dieser Fehler passiert?Was Angular Provider tun und wie man es benutzt?

Vielen Dank im Voraus.

+2

Die angular.io-Seite, mit der Sie verbunden sind, erklärt dies im Detail. Lies es noch einmal. https://angular.io/guide/dependency-injection#when-to-use-ngmodule-versus-an-application-component –

Antwort

1

providers Array sagt Angular, welche Dienste es instanziieren soll. Sie können es auf zwei Stellen definieren:

  1. Komponente
  2. Modul

Wenn Sie Anbieter in der Komponente verwenden, wird der Dienst auf das und all seinen Kindern zur Verfügung.

Wenn Sie es in Modul verwenden, wird der Dienst für alle Rohre, Direktiven, Komponenten und Dienstleistungen in gegebenem Modul verfügbar sein.

Aber Sie können es in beiden definieren, wenn Sie wollen - in diesem Fall wird Angular zwei Instanzen des gleichen Dienstes erstellen.

Für den Anfang bieten Sie Ihre Dienste auf der Modulebene an.