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 № 1dla 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.