您好,我的数据结构如下:
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 ......作为键。有什么想法在这里发生错误吗?
答案 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
... ...