2017-10-16 14 views
1

I(だと思う)私は、キー日付と値が少なくとも1つのアレイAngularコンポーネントの配列の辞書をどのように反復処理するのですか?

private dateArray = {}; 

されているとのセットの辞書データを持っている私のようにそれらを表示できるように、私は動的に辞書配列に複数の配列をロードしていますコンポーネントの異なるセクション入社

日:9/1/17

名:メアリー、年齢:40

名:ジョン、年齢:入社20

日の目標は、このようなものです:10/1/17

名:ジェフ、年齢:30

dateArrayは、キー内の文字列として日付を持つことになり、そのプロパティは、それらの特定のプロパティの複数の配列として追加されます。

{Fri Sept 1 2017: ([Name: Mary, Age: 40],[Name: John, Age: 20]), 
Sun Oct 1 2017: [Name: Jeff, Age: 30]} 

テンプレート側からデータにアクセスするにはどうすればよいですか?私はAngular 2を使用しています。Mapping Object Keys sectionを試しましたが、何も表示されていない運がありませんでした。配管は角度2で最適なルートですか?

+1

<div *ngFor="let key of keys"> <div *ngFor="let date of dateDictionary[key]"> <p>{{ date.date }}</p> <p>{{ date.Name }}</p> <p>{{ date.Age }}</p> </div> </div> 
私はその主張 '= {}プライベートDATEARRAY;'この変数/オブジェクトには適していません。この変数を{}で宣言すると、配列を生成することはできません。あなたは別の名前を使うことをお勧めします。もっと良い意味があります。 –

答えて

-1

たぶん、あなたはキーを持つプロパティを作成することができますが、それらを反復して、各キーの配列を取得します(iterableでngForしか使用できず、json-like/hashオブジェクトがこの{}のように反復可能でない限り)。

.TS

this.keys = Object.keys(dateDictionary) 

.htmlの

0

まず、dateArrayを公開する必要があります。テンプレートはpublicメンバーにのみアクセスします。その後

あなたはテンプレートでこのような何か行うことができます。

<div *ngFor="let date of dateArray"> 
    <p>{{ date.date }}</p> 
    <p>{{ date.Name }}</p> 
    <p>{{ date.Age }}</p> 
</div> 

ヒント:dateArray配列は次のようにする必要があります:

[ 
    { 
    "date": "Fri Sept 1 2017", 
    "Name": "test1", 
    "Age": "12" 
    }, 
    { 
    "date": "Fri Sept 1 2017", 
    "Name": "test2", 
    "Age": "2" 
    } 
] 
+0

辞書のように設定する理由は、同じ日付で項目をグループ化できるからです。テンプレートでグループ化を行う必要がありますか? – cooper

+1

@cooperテンプレートのログインが少ないほど、より良い(ほとんどの場合、コース)。 –

+0

*あまり論理がない...もちろん –

関連する問題