我有以下JSON结构:
{
"daypart": [
{
"temperature": [
45,
27,
47
]
}
]
}
我正在尝试从JSON API显示上面的数组。我只想显示此数组中的第一个元素,但是出现以下错误
Error: Uncaught (in promise): TypeError: Cannot read property '1' of undefined
代码:
this.http.get("xxxxxxxx")
.subscribe(data => {
let f = data["daypart"][0]
this.duhok = f
console.log("duhok" + this.duhok["temperature"][1])
})
HTML:
{{duhok.temperature[1]}}°
答案 0 :(得分:5)
在这里,我会做出一个疯狂的猜测,并说在请求被解决之前就渲染了html。 尝试将插值包装在ngIf块
中<div *ngIf="duhok">
{{duhok.temperature[1]}}°
</div>
答案 1 :(得分:2)
如果只想显示整个JSON结构中的第一个温度,则可以使用以下代码。使用异步管道的优点是您不必手动订阅/取消订阅可观察对象。
TS:
public getData(): Observable {
return this.http.get("xxxxxxxx");
}
HTML:
{{(getData() | async)?.daypart[0].temperature[1]}}
答案 2 :(得分:0)
可能是因为到达该组件时无法解析数据。您可以在该路径上向该组件添加解析器,以确保到达该位置时数据已解析。检查一下: https://angular.io/api/router/Resolve