我如何在我不知道名称 属性 的对象数组中执行 *ngFor?
How i can do a *ngFor in a array of objects that i don't know the name property?
我有一个名为 dadosRelatorio
的数组,我需要在我的模板中进行迭代,这个数组是我在 http 请求中获得的:
[{"id": 1,
"name": "a",
"class":[{
"Inglês":[{
"id": 1,
"code": "teste"
},
{
"id": 2,
"code": "teste 2"
}],
"Espanhol":[{
"id": 1,
"code": "a"
}]
}]
}]
如果 class 中的对象具有不同的名称 属性,我如何迭代这些对象?有时名称可以是 "Inglês" 有时可以是 "Espanhol" 和其他名称...
当我知道 属性 的名称时,我会这样做:
<div *ngFor="let aluno of dadosRelatorio" class="div-aluno">
<span>Aluno: {{ aluno.name }}</span>
<div *ngFor="let classe of aluno.class">
<div *ngFor="let idioma of classe. ???>
</div>
</div>
</div>
但是我如何迭代 class 中的对象?
您可以使用 Object.keys
枚举对象键。
参见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys。
编辑:您也可以使用官方文档中描述的键值管道:https://angular.io/api/common/KeyValuePipe
我以为还有一个 ngForIn 指令,但我找不到文档。
您可以使用 keyvalue
管道进行迭代,如下所示:
<div *ngFor="let aluno of dadosRelatorio" class="div-aluno">
<span>Aluno: {{ aluno.name }}</span>
<div *ngFor="let classe of aluno.class | keyvalue">
<div> {{classe.key}}</div>
<div *ngFor="let type of classe.value | keyvalue">
{{type.key}}
<div *ngFor="let data of type.value | keyvalue">
{{data.value.id }}
{{data.value.code }}
</div>
</div>
</div>
</div>
我有一个名为 dadosRelatorio
的数组,我需要在我的模板中进行迭代,这个数组是我在 http 请求中获得的:
[{"id": 1,
"name": "a",
"class":[{
"Inglês":[{
"id": 1,
"code": "teste"
},
{
"id": 2,
"code": "teste 2"
}],
"Espanhol":[{
"id": 1,
"code": "a"
}]
}]
}]
如果 class 中的对象具有不同的名称 属性,我如何迭代这些对象?有时名称可以是 "Inglês" 有时可以是 "Espanhol" 和其他名称...
当我知道 属性 的名称时,我会这样做:
<div *ngFor="let aluno of dadosRelatorio" class="div-aluno">
<span>Aluno: {{ aluno.name }}</span>
<div *ngFor="let classe of aluno.class">
<div *ngFor="let idioma of classe. ???>
</div>
</div>
</div>
但是我如何迭代 class 中的对象?
您可以使用 Object.keys
枚举对象键。
参见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys。
编辑:您也可以使用官方文档中描述的键值管道:https://angular.io/api/common/KeyValuePipe
我以为还有一个 ngForIn 指令,但我找不到文档。
您可以使用 keyvalue
管道进行迭代,如下所示:
<div *ngFor="let aluno of dadosRelatorio" class="div-aluno">
<span>Aluno: {{ aluno.name }}</span>
<div *ngFor="let classe of aluno.class | keyvalue">
<div> {{classe.key}}</div>
<div *ngFor="let type of classe.value | keyvalue">
{{type.key}}
<div *ngFor="let data of type.value | keyvalue">
{{data.value.id }}
{{data.value.code }}
</div>
</div>
</div>
</div>