Eu tenho um objeto com objeto aninhado. Estou tentando exibir em html usando a diretiva ngFor do Angular. Mas obtive o resultado como várias vezes. Abaixo do meu objeto
productlists = [
{
productname: 'orange', price:
[{ small: 20 }, { medium: 30 }, { large: 40 }], gst: 12
},
{
productname: 'lemon', price:
[{ small: 40 }, { medium: 80 }, { large: 102 }], gst: 20
},
{
productname: 'apple', price:
[{ small: 40 }, { medium: 80 }, { large: 102 }], gst: 20
}
];
O código HTML é
<div style="margin-left: 20rem;">
<div *ngFor="let product of productlists" >
<p style="color: blue;">Product Name {{product.productname}}</p>
<div *ngFor="let productprice of product.price">
Product Price
<p>Small: {{productprice.small}}</p>
<p>Medium: {{productprice.medium}}</p>
<p>Large: {{productprice.large}}</p>
</div>
<p>Product GST {{product.gst}}</p>
</div>
</div>
Por favor me ajude a exibir corretamente
Podemos usar
keyvalue
pipe para dividir a chave e o valor do objeto para que possamos acessá-los individualmente.Usamos
titlecase
pipe para que a chave extraída do objeto seja exibida com a primeira letra maiúscula.Usamos
*ngIf
aas
sintaxe para armazenar o valor do pipe keyvalue e usá-long-container
para que nenhum elemento extra seja adicionado ao HTML.Código completo:
Demonstração do Stackblitz