からいくつかのデータを返す:2角度、観測 - 私は、ログインコンポーネントと簡単な方法を持って購読
login(event) {
event.preventDefault();
this.authService.login(this.user);
}
これは私のAuthService
次のとおりです。
export class AuthService {
constructor(private jsonApiService:JsonApiService) {
}
isLoggedIn: boolean = false;
login(user:User): any {
this.jsonApiService.post('/token', user)
.subscribe(
resp => {
check if success,
store token to localstorage,
set isLoggedIn = true
* return new object with data about success/error
},
err => {
handle error
* return new object with data about success/error
});
}
logout(): void {
this.isLoggedIn = false;
}
}
このコードは正常に動作します。私は応答を得るが、サービスからコンポーネントへのデータを返す方法は不思議です。コンポーネントを購読する必要はありません。なぜなら、処理はAuthService内になければならないからです。
あなたは 'AuthService'にデータを保存し、あなたのコンポーネントが呼び出すことができるのgetメソッドを介してデータを求めることができます。また、そのメソッドをObservableとして作成し、コンポーネントをそのコンポーネントにサブスクライブすることもできます。これは、コンポーネントがデータを受け取る前に 'AuthService'を終了させます。 – John