【发布时间】:2020-04-25 11:02:42
【问题描述】:
我有一个login() 方法和一个AuthService。我想要的是从AuthService 中的login() 方法发出值来处理NavbarComponent 中的值:
export class AuthService extends AbstractRestService<any> {
user: AppUser = {id: null};
login(userName: string, password: string) {
return this.http
.post('/auth/login')
.pipe(
map(res => {
// here I want to emit value of Observable `anUser$`
// to send value to NavbarComponent
this.getAppUser(); // I want to throw Observable value to handle its value
// in NavbarComponent.ts
return true;
})
, catchError(this.handleError)
);
}
public getAppUser(): Observable<AppUser> {
return of(this.user);
}
}
我的NavbarComponent.html 看起来像这样:
<li *ngIf="appUser$ | async as anUser">
{{ anUser?.name }}
</li>
我的NavbarComponent.ts 看起来像这样:
appUser$: Observable<AppUser>;
async ngOnInit() {
this.appUser$ = this.auth.getAppUser();
}
我想要的是从AuthService 中的login() 方法发出值来处理NavbarComponent 中的值,但是appUser$ 的值未显示在NavbarComponent.html 中。
你能告诉我我做错了什么吗?
【问题讨论】:
标签: angular rxjs observable angular-observable