2016-06-29 28 views
3

2つの配列に値を格納して、1つのイオンリストに反復する。 BillerstatusstateとBillerstatusnamelstは2つの配列です。* ngFor-- IONIC2/Angular2で2つの配列を反復する

私は、ローカル変数の両方のための最初の反復値をとる

<ion-list ion-item *ngFor="let stat of Billerstatusstate;let bil of Billerstatusnamelst " > 

    {{bil}} <button round>{{stat}}</button> 

</ion-list> 

<ion-list ion-item *ngFor="let stat of Billerstatusstate" *ngFor="let bil of Billerstatusnamelst " > 

    {{bil}} <button round>{{stat}}</button> 

</ion-list> 

そのを反復するために、以下を試してみました。

何かがありますか?

単一アレイ内の両方の値を格納し、ngForを使用してビュー側でそれを分割する任意の他の方法がある。..

答えて

1

私はこのアプローチに従っている.. 私はそれとして、単一配列内の値の代わりに、二つの配列が格納されています単一のソースに由来します。

<ion-list ion-item *ngFor="let bil of Billerstatusnamelst " > 

    {{bil.name}} <button round>{{bil.Status}}</button> 

</ion-list> 

その私のために働いていた

HTMLの一部で
this.Billerstatusnamelst.push({name:"testname",Status:"Failure"}); 

...

1

あなたはこれを達成するためにngForディレクティブのインデックスを活用することができます。

<ion-list ion-item *ngFor="let stat of Billerstatusstate; let i=index"> 

    {{Billerstatusnamelst[i]}} <button round>{{stat}}</button> 

</ion-list> 
+0

、私は別の配列を反復処理する必要があります。 –

+0

他の配列は最初の配列と同じ数ですか?これらの配列は関連していますか? – rinukkusu

+0

両方の配列には名前/ステータスmsgがあります。インデックス/数値には関係ありません。 –

6

パイプを作成して、2つの配列を1つにマージし、この新しい配列に対して繰り返し処理を行うことができます。ここ

サンプルである:

@Pipe({ 
    name: 'merge' 
}) 
export class MergePipe { 
    transform(arr1, arr2) { 
    var arr = []; 
    arr1.forEach((elt, i) => { 
     arr.push({ state: elt, name: arr2[i] }); 
    }); 
    } 
} 

そして、このようにそれを使用する:

<ion-list ion-item *ngFor="let elt of Billerstatusstate | merge:Billerstatusnamelst" > 
    {{elt.name}} <button round>{{elt.state}}</button> 
</ion-list>  
+0

私はまだ答えてくれませんでした。私は、配列の2つの値をobj.name、obj.statusに基づいてアクセスできるObject .so形式で保存しようとしています。 –

+0

典型的なシナリオでは役に立つと思われるので、私はあなたのアプローチを試みます。 @tThierry –

+0

このアプローチを使用すると、配列の1つが変更された場合、テンプレートは自動的に更新されますか? – filippo

3

なぜ代わりにあなたのコード内の単一arrayを作成しないでください。この

<ion-list ion-item *ngFor="let stat of Billerstatusstate;let bil of Billerstatusnamelst " > 

    {{bil}} <button round>{{stat}}</button> 

</ion-list> 

を行います:

// I'm assuming they both have the same size 
for (var _i = 0; _i < Billerstatusstate.length; _i++) { 
    this.singleArray.push({ 
         stat: this.Billerstatusstate[_i], 
         bil: this.Billerstatusnamelst[_i] 
         }); 
} 
あなたのページで

そして:代わりにインデックスの

<ion-list ion-item *ngFor="let item of singleArray;" > 

    {{item.bil}} <button round>{{item.stat}}</button> 

</ion-list> 
関連する問題