【发布时间】:2017-01-29 20:25:55
【问题描述】:
我正在努力弄清楚,我的代码有什么问题。我试图从我的角度代码中调用休息 api,但它导致“无法读取未定义的属性 'id'”。
我在组件中的代码如下所示:
ngOnInit(): void{
this.getWod();
}
getWod(): void {
let id;
this.route.params.forEach((params: Params) => {
id = +params['id'];
})
this.wodService.getWod(id).then(wod => this.wod = wod);
console.log(this.wod);
}
在控制台和后端,我可以看到后端被正确调用。控制台中的网络选项卡显示:
wod: {id: 16, name: "test name", description: "test description", wod_type_id: 3, wod_category_id: 3}
在我刚刚拥有的组件的相应 html 页面中:
<div>{{wod.id}}</div>
上面的console.log方法导致“未定义”,我根本不知道为什么?
更新:
我的 getWod 服务代码如下所示:
getWod(id: number): Promise<Wod>{
const url = `${this.getWodUrl}/${id}`;
return this.http.get(url)
.toPromise()
.then(response => response.json().wod as Wod)
.catch(this.handleError);
}
有什么想法吗?
【问题讨论】:
-
您忘记向我们展示您在组件中声明
wod的部分。问题可能就在那里。
标签: angular typescript