/ / angular6 - service @Injectable provideIn - angleular

angular6 - service @Injectable provideIn - angleular

Jestem bardzo zdezorientowany w zakresie dostarczania Ponadto do drżenia drzewa. Jestem folderem test to zawiera test.module.ts test.component.ts test.service.ts Pytanie brzmi: powinienem użyć: 1) W serwisie:

@Injectable({ providedIn: TestModule, })

2) lub w module:

providers: [TestService]

i dlaczego pierwsze rozwiązanie lub drugie? z góry dziękuję.

Odpowiedzi:

0 dla odpowiedzi № 1

dla kątowego6 powinieneś użyć 1 (providedIn root), aby utworzyć wstrzykiwalną usługę singleton do wszystkich aplikacji, lub dostarczyćIn X, aby utworzyć wystąpienie tej usługi tylko po załadowaniu X.

2 może być przydatne do zastąpienia zastrzyku kolejną nową implementacją (testowanie?)

Angular 6 wprowadza providIn, ponieważ wcześniej wszystkie usługi były globalnie przypisywane dostawcom pakietu root i były uruchamiane na początku, mimo że nie były używane przez żaden moduł.


-1 dla odpowiedzi № 2

Różnica jest ... 1) Dla każdej instancji modułu będziesz mieć instancję usługi. 2) Będziesz mieć to samo wystąpienie dla każdego komponentu.