我的logout
服务中有auth
方法。我试图用它来调用它
组件,但这似乎不起作用。
模板
<a class="dropdown-item" (click)="auth.logout()">Logout</a>
成分</ P>
import { AuthService } from '../../_services/auth.service';
constructor(
public auth:AuthService
) {}
身份验证服务
public logout() {
return this.http.post<any>(this.apiHost+'/users/logout', {})
.map(() => {
localStorage.removeItem('currentUser');
this.router.navigate(['/']);
this.alertService.warning('You have been logged out.', true)
})
.catch(this.handleError);
}
我做错了什么?我是否需要调用本地函数而不是直接从模板调用auth?
答案 0 :(得分:2)
您可以从Observable
功能返回logout
。但是调用这个函数并不意味着从Observable订阅。
尝试添加subscribe()
进行订阅。
public logout() {
return this.http.post<any>(this.apiHost+'/users/logout', {})
.map(() => {
localStorage.removeItem('currentUser');
this.router.navigate(['/']);
this.alertService.warning('You have been logged out.', true)
})
.catch(this.handleError)
.subscribe();
}