2017-06-08 61 views
0

您好我有如下的數據結構:遍歷對象的數組,並拿到鑰匙角2

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

我想爲TH在我的表顯示鍵(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,...作爲關鍵。任何想法發生什麼錯在這裏?

+0

是什麼你的模板是什麼樣子? –

+0

你真的想展示什麼?你有一個對象數組,爲什麼不按原樣迭代它? '

{{item.id}} {{item.name}}
'也許我誤會了:) – Alex

回答

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

嘗試這樣的事情,我沒有嘗試,但它應該工作。問題在於你在數組上迭代,而不是在對象上。然後,在你說「鑰匙」的時候,這是數組的索引,這就是爲什麼你得到「0,1,2」。 是您的表像這樣?:

ID NAME 
id1 name1 
id2 name2 
... ... 
+0

不是我期待的阿爾貝託。 – blackdaemon

+0

yup Alberto .... – blackdaemon

+0

有動態長度(ej:id,姓名,年齡等)? –