在这个插件中,我试图在class member.service.ts内部的angular2 observable(Rxjs)上使用过滤器运算符。可观察对象是通过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)时,为什么列表不会呈现?在我看来,可观察对象在地图运算符之后处于对象状态,并且没有type属性。虽然不确定!
您可观察到的是一个单项,它是一个数组。这不是该数组中的项的可观察值。x
在您的过滤器函数中:x=> 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
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句