我正在尝试遍历内容。我尝试了一些在StackOverflow中找到的答案,但没有一个适合我。
我有这个JSON
{
"-KmdNgomUUnfV8fkzne_":{
"name":"Abastecimento"
},
"-KmdNgzguGKbCEfyQ3F0":{
"name":"Consórcios"
},
"-KmdNh9_jtBlFqY1Y_Rj":{
"name":"Consultoria aeronáutica"
},
"-KmdNhKNCVEiJ2Ou8bUV":{
"name":"Cursos e treinamentos"
},
"-KmdNhVRoKfaCM--304M":{
"name":"Financiamento"
},
"-KmdNhfIC6fA0kDJcVBq":{
"name":"Hangaragem"
},
"-KmdNhu0X-PteQMyHp_n":{
"name":"Mecânica"
},
"-KmdNi6ZmmYXnoOTXoC5":{
"name":"Táxi Aéreo"
},
"-KmdNiHFhiX_crXB1L2R":{
"name":"Outros"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试循环使用此代码
<button ion-item *ngFor="let cat of subcategories" (click)="onSubcategorySelect(cat)">
{{ cat.name }}
</button>
Run Code Online (Sandbox Code Playgroud)
没用 我究竟做错了什么?
Angular ng-for要求具有Iterable接口的任何元素都可以工作,而普通Object并非如此。您需要在数组中“转换”该对象,更简单的方法是使用with forEach或for/in循环:
在代码中的任何位置,您都将遍历对象,并将其保存在新变量中以用于ngFor:
public newSubcategories: any[] = []; // DECLARE A NEW EMPTY ARRAY IN THE TOP OF YOUR CLASS
this.subcategories.forEach(item => {
this.newSubcategories.push(a);
});
Run Code Online (Sandbox Code Playgroud)
如果您需要维护密钥,请使用密钥for/in来推送新对象。
public newSubcategories: any[] = []; // DECLARE A NEW EMPTY ARRAY IN THE TOP OF YOUR CLASS
for(let key in this.subcategories){
this.newSubcategories.push({
key: key,
name: this.subcategories[key].name
});
}
Run Code Online (Sandbox Code Playgroud)
最后你的HTML
<button ion-item *ngFor="let cat of newSubcategories" (click)="onSubcategorySelect(cat)">
{{ cat.name }}
</button>
Run Code Online (Sandbox Code Playgroud)
有了这个,您将可以ng-for在新阵列中使用。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
1533 次 |
| 最近记录: |