/ / Angular 2 uruchomienie usługi - serwis, kątowe

Uruchomienie usługi Angular 2 - serwis, kątowe

Czy jest możliwe wykonanie usługi w kancie 2?Podczas uruchamiania? bootstrap nie wykonuje kontruktora usługi. A także, wtryskiwacz wykonuje kontruktora usługi za każdym razem, gdy jest wstrzyknięcie usługi w jakimś komponencie. Czy istnieje sposób na wykonanie usługi singlet i upewnienie się, że ctor uruchomi się tylko raz?

Odpowiedzi:

2 dla odpowiedzi № 1

Dodaj usługę tylko do bootstrapu, a nie do prozaików w swoich komponentach. Jeśli wstrzykniesz go do AppComponent, zostanie on utworzony i tylko raz.

Dodanie usługi do dostawców w komponencie tworzy nową instancję dla każdej instancji komponentu.


1 dla odpowiedzi nr 2

Bootstrap nie rozpocznie korzystania z usługi, klasa konsumująca, która wstrzykuje usługę, a wpisując ją w bootstrapie otrzymasz singleton.

Jeśli zastosujesz konwencję wymieniania twoich usług wstrzykiwania (LogRepository) na bootstrap, wtedy wszystkie usługi będą pojedynczo. (Jak w LogRepository) bootstrap(TheApp, [HTTP_PROVIDERS,LogRepository]);

Możesz uzyskać więcej instancji usług wstrzykiwalnych, jeśli umieścisz je jako dostawców na komponencie, ale zaczynasz, po prostu wypisz je w bootstrap (). Następnie wszystkie singletony.