如何将键值对象的键用作角度模板中另一个对象的属性名称

时间:2019-09-03 10:12:05

标签: angular angular8 angular-template

如何将键值对象的键用作角度模板中另一个对象的属性名称

<ion-col *ngFor="let item of items | keyvalue">
{{ (stati | async)?.[item.key] }} // doesn't work
</ion-col>

item.key是我需要从“ stati”中获取的属性的名称吗?

对象示例:

items: { 
  item1: {id: 1, title: "xy", ... }, 
  item1: {id: 2, title: "xy", ... }, 
  item1: {id: 2, title: "xy", ... }
}
stati: { 
  'item1': 'xy1', 
  'item2': 'xy2', 
  'item3': 'xy3' 
}

我需要什么: 只有带有相应键的stati对象的值。

2 个答案:

答案 0 :(得分:2)

(stati | async)可以返回undefinednull。 尝试使用if条件包装:

<ng-container *ngIf="(stati | async) as _stati">
  <ion-col *ngFor="let item of items | keyvalue">
    {{ _stati[item.key] }}
  </ion-col>
</ng-container>

答案 1 :(得分:0)

尝试使用object.keys和所需的索引键

let objArr = [
    'apple',
    'microsoft',
    'amazon',
    'alphabet',
    'tencent',
    'alibaba'
];
console.log(Object.keys(objArr))

您可以通过键从对象中获取相应的值

var requiredKey = Object.keys(objArr)[2] //amazon
var obj = {key1: "value1", key2: "value2"};
Object.assign(obj, {key3: requiredKey});
//There are other ways too

希望这能回答您的问题。