【问题标题】:RxJS append observable to observable array list in typescriptRxJS 将 observable 附加到 typescript 中的 observable 数组列表
【发布时间】:2018-07-18 12:59:36
【问题描述】:

如何将Observable<News> 添加到 observable 数组中?

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.
}

HTML:

<li *ngFor="let item of (newsArray | async)">
  <div>{{item.Id}}: {{item.DataValue}}</div>
</li>

还有其他要使用的运算符吗?

我尝试了BehaviourSubject,但它一次只显示一个值。我想显示添加到数组中的添加项。

【问题讨论】:

    标签: arrays angular typescript rxjs observable


    【解决方案1】:

    您可以使用扫描来积累新闻

    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);
    }
    

    HTML

    <li *ngFor="let item of (news$ | async)">
      <div>{{item.Id}}: {{item.DataValue}}</div>
    </li>
    

    【讨论】:

    • 但我想在按钮点击事件上添加新闻,还有一个 NewsId 我想根据该新闻将其传递给 API。
    猜你喜欢
    • 2017-07-30
    • 2020-12-01
    • 2016-11-28
    • 2017-06-15
    • 2021-06-25
    • 2021-05-24
    • 2018-11-12
    • 2018-07-17
    • 1970-01-01
    相关资源
    最近更新 更多