Sre*_*r P 1 arrays observable rxjs typescript angular
如何添加Observable<News>到可观察数组?
newsArray: Observable<Array<any>>;
addNews(newsId: number) {
let news = this.newsService.getNewNews(newsId); // this returns a Observable<News> type.
//I want to add `news` to `newsArray` to display it in UI.
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<li *ngFor="let item of (newsArray | async)">
<div>{{item.Id}}: {{item.DataValue}}</div>
</li>
Run Code Online (Sandbox Code Playgroud)
还有其他可以使用的运算符吗?
我尝试过BehaviourSubject,但它一次只显示一个值。我想显示我要附加到数组的添加项目。
您可以使用扫描来积累新闻
news$:Observable<any>
loadMore$=new Subject<number>()
ngOnInit(){
this.news$=this.loadMore$
.switchMap((newsId)=>this.newsService.getNewNews(newsId))
.scan((acc,curr)=>{
acc.push(curr)
return acc
},[]).startWith(null)
}
addNews(newsId: number) {
this.loadMore$.next(newsId);
}
Run Code Online (Sandbox Code Playgroud)
超文本标记语言
<li *ngFor="let item of (news$ | async)">
<div>{{item.Id}}: {{item.DataValue}}</div>
</li>
Run Code Online (Sandbox Code Playgroud)