【发布时间】:2017-07-26 13:22:48
【问题描述】:
我在遍历 json 对象时遇到问题。
这是 Json 示例:
floors.ts
this.floors= [
{
floorName: "floor 1",
result: [
{
resFloor: "1",
floorResult: [
{
roomNum: "room 1",
roomResult: [
{
bedNum: "1"
},
{
bedNum: "2"
},
{
bedNum: "3"
}
],
},
{
roomNum: "room 2",
roomResult: [
{
bedNum: "1"
},
{
bedNum: "2"
},
{
bedNum: "3"
}
],
},
{
roomNum: "room 3",
roomResult: [
{
bedNum: "1"
},
{
bedNum: "2"
},
{
bedNum: "3"
}
],
},
],
}
],
}
]
地板模板.html
<button *ngFor="let i of floors">
{{i.floorName}}
<div *ngIf="clicked">
<button *ngFor="let j of i.result">
{{j.resFloor}}
<div *ngIf="clicked">
<button *ngFor="let k of j.floorResult">
{{k.roomNum}}
</button>
</div>
</button>
</div>
我想要做的是我想遍历这个 json。在 ngIf 中,clicked 是布尔值,如果它设置为 true,那么它会给我所有 ngFor 循环的结果,然后它给我一个错误;如果它设置为 false 那么除了第一个 for 循环的结果之外什么都不会出现,然后那个按钮什么也不做。我究竟做错了什么。请指出正确的方向。谢谢!!
【问题讨论】:
-
你遇到了什么错误?
-
@Amit 我收到此错误
EXCEPTION: Cannot read property 'floorResult' of undefined -
你能发布你的整个 json 吗?
-
@Amit 我已经编辑了 floor.ts
-
嗯,我建议注释掉有问题的 ngFor 并输出 {{j | json}} 并从 ngFor 内部查看它的外观。让我知道它是否看起来与应该(或不)不同
标签: html json angular typescript