如何在对象数组中使用 *ngFor 循环?
How to loop with *ngFor in array of objects?
我正在学习 Angular2,所以如果我问了一个愚蠢的问题,请原谅我。我收到了一组对象,它看起来像这样:
obj.json
data: [
{
item: "banana"
}
],
[
{
item: "apple"
}
],
[
{
item: "lemon"
}
]
在我的组件文件中,我设法将其限定在一个范围内:
this.fruits = data[0].item;
问题是我只能通过索引确定第一项或第二项的范围,依此类推。我怎样才能确定它们的范围,然后将它们显示在 HTML 文件中 *ngFor
?
您的数组无效 JavaScript。假设您的数据实际上是这样的:
data: [
{
item: "banana"
},
{
item: "apple"
},
{
item: "lemon"
}
]
然后您将像这样遍历数据:
<li *ngFor="let fruit of data">
<b> {{fruit.item}} </b>
</li>
您的对象无效。我已经编辑了。
要遍历对象属性,请使用:
<ul>
<li *ngFor='let elem of data'>{{ elem.item }}</li>
</ul>
export class SomeClass {
public name: String;
constructor(_name: String){
this.name= _name;
}
}
let fruits : Array<SomeClass>[new SomeClass("banana"),new SomeClass("apple"),new SomeClass("lemon")];
<li *ngFor="let fruit of fruits">
<b> {{fruit.name}} </b>
</li>
我不完全明白问题所在。我也在用这个。
我有一个对象数组:private receipts:receipt[]
其中收据是一个包含一些相关数据的对象
export class receipt {
public imageData;
private accountNo;
private tripNo;
private ticketType;
//..getters/setters and other variables
}
现在填充数组后,我只需像这样使用它(不要介意离子载玻片,这对 div 也适用):
<ion-slide *ngFor="let entry of receipts; let i = index" id="{{'imgSlideContainer_'+i}}">
<div>
<img src="{{entry.getImageData()}}" id="{{'imgSlide_'+i}}" (click)="openImageUtil(entry, 'imgSlide_'+i)">
...
</ion-slide>
这符合预期。对于表单,您也可以使用 {{entry.imageData}}
如果它是可访问的 属性 (是的,我测试过这个)
类似地,对于嵌套对象,您应该能够简单地 {{entry.someSubObject.someSubSubObject}}
希望这对您有所帮助。
我正在学习 Angular2,所以如果我问了一个愚蠢的问题,请原谅我。我收到了一组对象,它看起来像这样:
obj.json
data: [
{
item: "banana"
}
],
[
{
item: "apple"
}
],
[
{
item: "lemon"
}
]
在我的组件文件中,我设法将其限定在一个范围内:
this.fruits = data[0].item;
问题是我只能通过索引确定第一项或第二项的范围,依此类推。我怎样才能确定它们的范围,然后将它们显示在 HTML 文件中 *ngFor
?
您的数组无效 JavaScript。假设您的数据实际上是这样的:
data: [
{
item: "banana"
},
{
item: "apple"
},
{
item: "lemon"
}
]
然后您将像这样遍历数据:
<li *ngFor="let fruit of data">
<b> {{fruit.item}} </b>
</li>
您的对象无效。我已经编辑了。
要遍历对象属性,请使用:
<ul>
<li *ngFor='let elem of data'>{{ elem.item }}</li>
</ul>
export class SomeClass {
public name: String;
constructor(_name: String){
this.name= _name;
}
}
let fruits : Array<SomeClass>[new SomeClass("banana"),new SomeClass("apple"),new SomeClass("lemon")];
<li *ngFor="let fruit of fruits">
<b> {{fruit.name}} </b>
</li>
我不完全明白问题所在。我也在用这个。
我有一个对象数组:private receipts:receipt[]
其中收据是一个包含一些相关数据的对象
export class receipt {
public imageData;
private accountNo;
private tripNo;
private ticketType;
//..getters/setters and other variables
}
现在填充数组后,我只需像这样使用它(不要介意离子载玻片,这对 div 也适用):
<ion-slide *ngFor="let entry of receipts; let i = index" id="{{'imgSlideContainer_'+i}}">
<div>
<img src="{{entry.getImageData()}}" id="{{'imgSlide_'+i}}" (click)="openImageUtil(entry, 'imgSlide_'+i)">
...
</ion-slide>
这符合预期。对于表单,您也可以使用 {{entry.imageData}}
如果它是可访问的 属性 (是的,我测试过这个)
类似地,对于嵌套对象,您应该能够简单地 {{entry.someSubObject.someSubSubObject}}
希望这对您有所帮助。