2017-06-08 17 views
0

こんにちはを取得するには、私は以下のようなデータ構造を持っています。私は何もbuitinパイプを見つけなかったので、私はカスタムを作成しました。オブジェクトの配列を反復処理すると、キーの角2

@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、name、age、etc)がありますか? –

関連する問題