【发布时间】:2018-04-13 20:08:52
【问题描述】:
我有这个
public getRouteData(): BehaviorSubject<string[]> {
return this.routeData;
}
我想将此映射到 {name: r} 的 Observable,其中 r 是 string[] 中的一个项目
public gridData: BehaviorSubject<any[]> = new BehaviorSubject([]);
我想将string[] 映射到对象数组{name: r},其中r 是数组项,以便我可以将对象数组绑定到网格。
不知何故无法排序或语法正确。
试过getRouteData().map(r => ({name: r})).subscribe(r => this.gridData.next(r));,但这不正确,因为我最终得到{name:string[]}而不是[{name:string}]
有人可以帮忙吗?
谢谢!
【问题讨论】:
-
您误解了可观察对象的工作原理。如果您的 observable 正在处理
string[],这就是您作为map的参数得到的。如果您的 observable 一次发出一个字符串,它应该是BehaviourSubject<string>,而不是BehaviorSubject<string[]>。然后您的地图参数将获得string,而不是string[]。 -
所以你想要
Observable<{ name: string }[]>而不是Observable<string[]>? -
Daniel W Strimpel - 是的,这正是我所需要的。那么地图不对?