javascript - 不能使用异步管道 RXJS - ANGULAR
问题描述
当我想使用异步管道时,我无法直接显示我的 observables。我可以不用管道异步,它可以工作。我的评论代码运行良好,但我真的很想单独使用 Angular 的异步管道并取消订阅。
用户服务
public newsfeed: BehaviorSubject<MessageUser> = new BehaviorSubject(null);
reloadNewsFeed(): Observable<MessageUser> {
return this.http.get<MessageUser>('api/user/newsfeed').pipe(
tap((x: MessageUser)=>{
this.newsfeed.next(x)
}), switchMap(()=>{
return this.newsfeed
}))
};
新闻提要.component.ts
//public lesMessage2;
public lesMessages:Observable<MessageUser>
constructor(
private userService: UserService,
) { }
ngOnInit() {
// It does not work
this.lesMessages = this.userService.reloadNewsFeed()
// OK that works
// this.subMessage = this.userService.reloadNewsFeed().subscribe((user: MessageUser)=>{
// console.log(user);
// this.lesMessage2 = user;
// }, (err)=>{
// console.log(err);
// })
}
newsfeed.component.html
<span *ngIf="lesMessage | async; let user">
<p>Iterer sur mon Subjects : <strong> {{ user.message }} </strong> </p>
</span>
解决方案
问题是在 TS 文件中,您的属性名为,this.lesMessages
但在模板中,您尝试订阅“lesMessage”(应该是 lesMessages)。尝试更改您当前的字符串:
... *ngIf="lesMessages | async" ...
推荐阅读
- java - 使用户只能更改他在 JAX-RS 和 Jersey 上拥有的数据的最佳实践
- msbuild - 由于缺少程序集,在 VS2017 中正确构建的项目在 TFS2017 构建服务器中失败
- pyspark - 在 Spark 2.2.1 中加载 CrossValidator 模型
- java - 如何在 Github API 中使用个人访问令牌?
- javascript - Extracting words from a space (comma) separated string
- python - 如何并行计算?
- html - 具有内联样式的 CSS 特异性
- java - 从 android studio 中的 firebase 获取特定数据
- java - Java 8 短路了许多返回布尔值的连续方法
- r - 从 ShinyApp 使用 session$token 的好方法?