我有一些需要使用ngFor
列出的数据,如下所示:
<ul *ngFor="let dat of data; let i = index">
<li>{{ dat[i].name }} - {{ i }}</li>
</ul>
上面的代码的问题在于它仅显示1个项目。
但是我知道这些物品在那里,因为当我这样做时:
{{ dat[0].name }}
{{ dat[1].name }}
以上内容为我提供了预期的不同项目,但是当我尝试像这样循环时:
{{ dat[i].name }}
它只会显示第一个。
我该如何解决?
答案 0 :(得分:3)
要使用ngFor
进行迭代,无需添加索引。将dat[i].name
替换为dat.name
尝试一下:
由于不清楚数据的格式,因此有两种可能性:
对于
data = [
{ name: "one" },
{ name: "two" }
]
<ul *ngFor="let dat of data; let i = index">
<li>{{ dat.name }} - {{ i }}</li>
</ul>
对于
data = [
[
{ name: "one" },
{ name: "two" }
]
]
<ul *ngFor="let dat of data[0]; let i = index">
<li>{{ dat.name }} - {{ i }}</li>
</ul>
答案 1 :(得分:0)
从您呈现的内容来看,data
是一个1元素的数组,它是dat
(data
的元素),其长度(因此,data
将类似于[[obj1, obj2, obj3]]
,而不是[obj1, obj2, obj3]
)。因此,您应该像这样遍历data
的第0个(也是唯一的)元素:
<ul *ngFor="let dat of data[0]; let i = index">
答案 2 :(得分:0)
如果数据是数组,则不需要在可重复元素dat上使用[i]。仅使用dat.name