Я думаю, что вы могли бы использовать в Get/Set синтаксис машинописи определить, когда ваша подлинность свойства вашей службы обновляется:
private _authenticated:Boolean = false;
get authenticated():Boolean {
return this._authenticated ;
}
set authenticated (authenticated Boolean) {
// Plugin some processing here
this._ authenticated = authenticated;
}
При присвоении значения, то «набор аутентификации "вызывается блок. Например, с таким кодом:
this.authenticated = true;
Смотрите этот вопрос для более подробной информации:
Это сказал, что вы могли бы также использовать свойство EventEmitter в службе. Когда аутентифицированное свойство обновляется, соответствующее событие может быть запущено.
export class AuthService {
authenticatedChange: Subject<boolean> = new Subject();
constructor() {}
emit(authenticated) {
this.authenticatedChange.next(authenticated);
}
subscribe(component, callback) {
// set 'this' to component when callback is called
return this.authenticatedChange.subscribe(data => {
callback(component, data);
});
}
}
Смотрите эту ссылку для получения более подробной информации:
Hi @Sasxa, так что если у меня есть, например, 5 компонентов. 'home.component.ts',' footer.component.ts', 'navbar.component.ts',' x.component.ts' и 'user.component.ts'. Предполагая эти 5 компонентов, и если я хочу проверить подлинность. Мне нужно добавить следующее: 'constructor (private _authService: AuthService) {...}' ко всем моим 5 компонентам. Это верно? и выполните 'ngOnInit' для всех 5 компонентов?Нужна помощь в понимании концепции аутентификации Angular2. –
Есть много вариантов/вариантов. Все зависит от того, что вы делаете. Вы можете аутентифицироваться на каждом компоненте или только в корневом компоненте. Это сложная тема, вам нужно будет решить, что лучше для вашего приложения ( – Sasxa
не могли бы вы указать мне на обсуждение/форум/блог/статью по этой теме? –