/app
- app.component.ts
- app.component.html (hide/show: menu bar)
- app.global.service.ts (Public varible LoginSuccess:boolean)
- main.ts
/student
- student.ts
- student.service.ts
- student.component.ts
- student.component.html
/security
- login.component.ts (LoginSuccess = true)
- login.component.html
W mojej aplikacji Angular2, mam prostą potrzebę, gdy chcę pokazać pasek menu ukrywania oparty na sukcesie logowania. W tym celu utworzyłem usługę, która ma zmienną logikę LoginSuccess, którą ustawiłbym na komponencie logowania i użyję na app.component.html dla tagu nawigacji o numerze [hidden]=LoginSuccess
.Globalny dostawca usług Angular2
Problem jestem stoi to, że nawet po wstrzyknięciu app.global.service.ts
thru constructor
od app.component.ts & login.component.ts
wartość nie jest utrzymująca się i każdy konstruktor tworząc nowy obiekt app.global.service.ts
.
Pytanie: Jak mogę osiągnąć pojedynczą wartość w całej aplikacji przez usługę. Gdzieś w dokumentach Angular2 przeczytałem, że usługa Injectable jest singleton.
A co jeśli chcemy zapewnić pewne elementy w momencie bootstrap, jak zrobiliśmy w Globalservice? –
Po prostu mówiąc: jeśli komponent, do którego wstrzykujesz usługę singleton (globalną), znajduje się w osobnym pliku, musisz jednak użyć instrukcji import w tym pliku, aby załadować usługę: 'import {AuthService} from" ./ services/auth.service ";' – Samuel
Ale jeśli nie dodaję tego do dostawców: [] pojawia się błąd; WYJĄTEK: Brak operatora dla GlobalService! –