【问题标题】:Rxjs filter operator not working with Angular2 ObservableRxjs 过滤器运算符不适用于 Angular2 Observable
【发布时间】:2016-12-02 00:24:25
【问题描述】:

在这个plunker 我正在尝试在类 member.service.ts 中的 angular2 observable (Rxjs) 上使用过滤器运算符。 observable 是通过 http 请求获取的,我处理如下:

  getMembers (): Observable<Member[]> {
    var one = this.http.get(this.memberUrl)
    .map( this.extractData )
    //.filter(x => x.type==='member')
   return one
 }

我的问题是:为什么当我取消注释带有过滤器的行时列表不会呈现(请查看 in-memory-data.service.ts)?在我看来,可观察对象在映射运算符之后处于对象状态,并且没有类型属性。不过不确定!

【问题讨论】:

    标签: http filter angular rxjs observable


    【解决方案1】:

    你的 observable 是一个单一的项目,它是一个数组。它不是该数组中项目的可观察值。 x 在您的过滤器函数中:x=&gt; x.type ==="member" 是一个数组,所以 x.type 不存在。为了完成你想要的,你需要遍历那个数组:

    getMembers (): Observable<Member[]> {
        var one = this.http.get(this.memberUrl)
                        .map( this.extractData )
                        .map(memberArray => {
                            return memberArray.filter(x=> x.type === "member")
                        })
        return one
      }
    

    【讨论】:

      猜你喜欢
      • 2018-08-20
      • 2021-12-09
      • 2017-07-15
      • 2018-11-22
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      相关资源
      最近更新 更多