J'essaie d'afficher uniquement une valeur de clé, dans ce cas "_t1_product_price" à partir d'un tableau de données JSON qui ressemble à ce qui suit. Je sais que si j'utilise la méthode ngFor keyPipe dans Angular6, cela ferait simplement une boucle sur toutes les clés et valeurs, mais ce n'est pas ce que je cherche à réduire à un seul objet. En espérant que quelqu'un puisse me guider.
<ion-item *ngFor="let item of product.meta_data">
{{item.id}} - {{item.value}}
</ion-item>
Et aussi que puis-je utiliser comme TypeScript pour afficher la vue. Actuellement, j'utilise cette méthode qui n'est pas ce que je recherche. Merci d'avance.
meta_data: Array(17)
0: {id: 37609, key: "inline_featured_image", value: "0"}
1: {id: 37610, key: "erp-wc-subscription", value: Array(0)}
2: {id: 37619, key: "_inventory_asset_account", value: ""}
3: {id: 37620, key: "_item_sales", value: "0"}
4: {id: 37621, key: "_sales_account", value: ""}
5: {id: 37622, key: "_tax_on_sales", value: "-1"}
6: {id: 37623, key: "_item_purchase", value: "0"}
7: {id: 37624, key: "_purchase_price", value: ""}
8: {id: 37625, key: "_purchase_account", value: ""}
9: {id: 37626, key: "_tax_on_purchase", value: "-1"}
10: {id: 37627, key: "_cost_price", value: ""}
11: {id: 37628, key: "_sales_description", value: ""}
12: {id: 37629, key: "_purchase_description", value: ""}
13: {id: 37630, key: "_woo_uom_input", value: ""}
14: {id: 37900, key: "_t1_product_price", value: "1"}
15: {id: 37901, key: "_t2_product_price", value: "2"}
16: {id: 37902, key: "_t3_product_price", value: "3"}
3 Réponses :
Si je comprends votre question, vous pouvez filtrer les données au niveau dactylographié et non au niveau du modèle. Vous pouvez utiliser la fonction de carte pour obtenir la valeur de clé unique
uniqueprice = metadata
.map(function(product) {
if(product.key == "_t1_product_price")
{
return product.key;
}
})
console.log(uniqueprice);
vous pouvez utiliser la méthode de tableau map pour mapper le tableau à un tableau ayant un seul objet, puis extraire cet objet à l'aide de l'indexation.
metadata.map(data => data.key === 'yourkeytext' && data)[0])
Je pense que vous pouvez utiliser une méthode pour filtrer l'objet, qui appartient à votre clé.
<ion-item>
{{(item | MyPipe:key).id}} - {{(item | MyPipe:key).value}}
</ion-item>
export class MyPipe implements PipeTransform {
transform(value, key):any {
value.filter(data=> data.key == key)
}
}
Une autre façon d'utiliser pipe pour obtenir des valeurs de method, car cette méthode peut être appelée encore et encore, ce qui peut ralentir votre application.
<ion-item>
{{ getObject(product.meta_data, key) .id}} -
{{getObject(product.meta_data,key).value}}
</ion-item>
private getObject(listOfObject, key)
{
return listOfObject.filter(data=> data.key == key)
}
voulez-vous dire que vous voulez filtrer votre objet et ne renvoyer que la clé que vous voulez? stackoverflow.com/questions/34164413/… < / a>
Voulez-vous extraire uniquement la clé et les valeurs des objets ?? Si oui, vous pouvez utiliser la méthode javascript array.map.