迭代一个对象数组并获得关键的Angular 2

时间:2017-06-08 07:52:26

标签: angular

您好,我的数据结构如下:

list = [{id: "test", name: "name1"}, {id: "test1", name: "name2"}, ..]

我想在表格中显示键(id和name)。由于我没有找到任何buitin管道,我创建了一个自定义管道。

@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
  transform(value, args:string[]) : any {
    let keys = [];
    for (let key in value) {
      keys.push({key: key, value: value[key]});
    }
    return keys;
  }
}

但在我的HTML中,我只得到0,1,2 ......作为键。有什么想法在这里发生错误吗?

2 个答案:

答案 0 :(得分:0)

也许这会有所帮助:

@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
  transform(value, args:string[]) : any {
    let keys = [];
    Object.keys(value).forEach(function(key){
      keys.push({key: key, value: value['value']});
    }); 

    return keys;
  }
}

答案 1 :(得分:-1)

尝试这样的事情,我没有尝试,但它应该工作。问题是你在数组上迭代,而不是在对象上。然后,当你说“关键”时,它就是数组的索引,这就是你得到的原因,“0,1,2”。 你的桌子是这样的吗?:

ID    NAME
id1   name1
id2   name2
...   ...