Iterate two arrays in *ngFor— IONIC2/Angular2

前端 未结 5 1248
遥遥无期
遥遥无期 2020-12-30 13:30

I have stored values in two arrays to iterate in a single ion-list . Billerstatusstate and Billerstatusnamelst are the two arrays.

I have tried the foll

相关标签:
5条回答
  • 2020-12-30 13:51

    I have followed this approach.. I have stored values in single array instead of two arrays as it comes from a single source.

     this.Billerstatusnamelst.push({name:"testname",Status:"Failure"});
    

    In HTML part

     <ion-list ion-item *ngFor="let bil of Billerstatusnamelst "  >
    
      {{bil.name}} <button round>{{bil.Status}}</button>
    
    </ion-list>
    

    Its worked for me..

    0 讨论(0)
  • 2020-12-30 13:57

    Multiple array in single array am using

        this.termlist = this.result.termlst.$values;
        this.disableterm = this.result.disableterms.$values;
        this.customlist = this.result.customgrplist.$values;
    

    single array code

     this.totalarrayob =[ this.termlist,this.disableterm, this.customlist];
    

    how can i call in html using *ngfor

    <ion-col col-12 no-padding *ngFor="let list of totalarrayob;let k = index">
        <h6>lorem Ipsum</h6>
        <ion-list>
          <ion-item>
            <ion-label>I Term</ion-label>
            <ion-checkbox checked="false"></ion-checkbox>
            <ion-note item-right>
              25000
            </ion-note>
          </ion-item>
        </ion-list>
      </ion-col>
    
    0 讨论(0)
  • 2020-12-30 13:59

    You can leverage the index of the ngFor directive to achieve this.

    <ion-list ion-item *ngFor="let stat of Billerstatusstate; let i=index">
    
      {{Billerstatusnamelst[i]}} <button round>{{stat}}</button>
    
    </ion-list>
    
    0 讨论(0)
  • 2020-12-30 14:05

    I could create a pipe to "merge" your two arrays into a single one and then you can iterate over this new array.

    Here is a sample:

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

    And use it this way:

    <ion-list ion-item *ngFor="let elt of Billerstatusstate | merge:Billerstatusnamelst"  >
      {{elt.name}} <button round>{{elt.state}}</button>
    </ion-list>    
    
    0 讨论(0)
  • 2020-12-30 14:11

    Why instead of doing this

    <ion-list ion-item *ngFor="let stat of Billerstatusstate;let bil of Billerstatusnamelst "  >
    
      {{bil}} <button round>{{stat}}</button>
    
    </ion-list>
    

    don't you create a single array in your code:

    // 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] 
                            });
    }
    

    And then in your page:

    <ion-list ion-item *ngFor="let item of singleArray;"  >
    
      {{item.bil}} <button round>{{item.stat}}</button>
    
    </ion-list>
    
    0 讨论(0)
提交回复
热议问题