在*ngFor-- IONIC2/Angular2中迭代两个数组

Kar*_*eya 7 typescript ionic2 ionic3 angular

我已将值存储在两个数组中以在单个离子列表中进行迭代.Billerstatusstate和Billerstatusnamelst是两个阵列.

我尝试了以下迭代

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

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

</ion-list>
Run Code Online (Sandbox Code Playgroud)

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

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

</ion-list>
Run Code Online (Sandbox Code Playgroud)

它取两个局部变量的第一个迭代值.

我错过了什么?

有没有其他方法可以将两个值存储在单个数组中,并使用ngFor将其拆分到View端.

Thi*_*ier 9

我可以创建一个管道来将你的两个数组"合并"成一个数组然后你可以迭代这个新的数组.

这是一个示例:

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

并以这种方式使用它:

<ion-list ion-item *ngFor="let elt of Billerstatusstate | merge:Billerstatusnamelst"  >
  {{elt.name}} <button round>{{elt.state}}</button>
</ion-list>    
Run Code Online (Sandbox Code Playgroud)


seb*_*ras 6

为什么不这样做呢?

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

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

</ion-list>
Run Code Online (Sandbox Code Playgroud)

你不是array在代码中创建一个单独的:

// 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] 
                        });
}
Run Code Online (Sandbox Code Playgroud)

然后在你的页面中:

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

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

</ion-list>
Run Code Online (Sandbox Code Playgroud)


rin*_*usu 5

您可以利用ngFor指令的索引来实现此目的。

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

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

</ion-list>
Run Code Online (Sandbox Code Playgroud)

  • 如果它们不相关,那么为什么要同时显示两个阵列中的数据? (5认同)

Kar*_*eya 1

我遵循了这种方法。我将值存储在单个数组中,而不是两个数组中,因为它来自单个源。

 this.Billerstatusnamelst.push({name:"testname",Status:"Failure"});
Run Code Online (Sandbox Code Playgroud)

在HTML部分

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

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

</ion-list>
Run Code Online (Sandbox Code Playgroud)

它对我有用..