【发布时间】:2018-03-15 03:18:07
【问题描述】:
我在 Angular 4 中遇到问题,试图在点击“用户链接配置文件”时从特定用户那里获取详细信息。
但是我不能订阅我的函数,因为 switchMap 的返回值是 AnonymousSubject 而不是 Observable:
ngOnInit() {
this.route.paramMap.switchMap((params: ParamMap) => this.getHero(+params.get('id')))
.subscribe(hero => {
this.hero = hero;
})
}
这里是 getHero 函数:
getHero(id: number) {
return this.getHeroes().find(hero=>hero.id===id);
}
getHeroes() 函数返回简单的 json 数据对象,其中包含英雄的详细信息(id 和名称)。
感谢您的任何帮助/建议!
【问题讨论】:
-
你能发布你的 getHeroes 方法吗?它是否返回一个数组?
-
@LLai ye 它的简单返回 HeroList ,也就是一个对象数组
-
switchMap 期望您返回一个可观察的、承诺的、数组或可迭代的。您的 getHero 方法正在返回一个对象。尝试让它返回一个带有对象值的 observable。
return Observable.of(this.getHeroes().find(hero=>hero.id===id)); -
@LLai 非常感谢你!!!这解决了我缺乏知识:)
-
很高兴我能帮上忙!我会发布一个答案,以便将来人们更容易找到
标签: javascript angular typescript observable