2017-02-23 15 views
-1

私はこのようなオブジェクトがあります:私は、キー(KEY1とKEY2)からの値が表示されます* ngIf文を作成する必要があり配列を* ngIfでループする方法はありますか?

"data": [ 
    { 
     "key1": "value1"; 
     "satisfaction": { 
     "yes": 0, 
     } 
    }, 
    { 
     "key2": "value2"; 
     "satisfaction": { 
     "yes": 4, 
     } 
    } 
] 

のみ「satisfaction.yes」終了(0より大きい)場合に。これは動的に生成され、私が得るかもしれないことは決してわかりません。

satisfaction[]の配列をどのように反復できますか?0(存在する)より大きい場合はkey1key2の値を表示しますか?最善の方法は何ですか?

ありがとうございました。

EDIT:これが行われた後、私はエクスポート/キーをダウンロードする必要があるパラメータを渡す必要があります。..

+0

これはかなり基本的な/基本的な機能の問題です。チュートリアルやAngularサイトのドキュメントを読むことから始めてください。これは非常によく書かれています。より多くの助けが必要な場合は、[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を含めてください。 [良い質問をするにはどうすればいいですか](http://stackoverflow.com/help/how-to-ask)も読んでください。あなたの質問が具体的で、過度に広範でないことを確認してください。 – Igor

答えて

1

使用this.data.filter(v => v.satisfaction.yes);コンストラクタの内部。

注:オブジェクトプロパティー名keyは同一でなければなりません。そうでないと、*ngForループを実行できなくなります。

Working plunker

1

satisfaction.yes> 0、その後、表示値である場合は、お使いのアレイと最初のチェックにforEachループを使用することができます他のキーの。

var obj = { 
 
    "data": [{ 
 
    "key1": "value1", 
 
    "satisfaction": { 
 
     "yes": 0, 
 
    } 
 
    }, { 
 
    "key2": "value2", 
 
    "satisfaction": { 
 
     "yes": 4, 
 
    } 
 
    }] 
 
} 
 

 
obj.data.forEach(function(o) { 
 
    if (o.satisfaction.yes > 0) { 
 
    Object.keys(o).forEach(function(e) { 
 
     if (e != 'satisfaction') console.log(o[e]) 
 
    }) 
 
    } 
 
})

関連する問題