嗨,我有一个数据结构如下:
list = [{id: "test", name: "name1"}, {id: "test1", name: "name2"}, ..]
我想在我的表中显示键(id 和名称(。由于我没有找到任何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、...作为键。知道这里出了什么问题吗?
也许这会有所帮助:
@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;
}
}
尝试这样的事情,我没有尝试过,但它应该可以工作。问题是您正在迭代数组,而不是对象。然后,你说"键"的地方是数组的索引,所以,这就是为什么你得到"0,1,2"。你的桌子是这样的吗?
ID NAME
id1 name1
id2 name2
... ...