Ionic 2:懒惰加载列表的项目值

时间:2017-03-16 18:10:16

标签: angular ionic2

我有项目列表,并希望通过api调用加载每个项目的一个值。

问题:Api调用函数(即getCount(value))被无限次调用。

这个简单的代码说明了我的问题:

模板文件代码:

<ion-item *ngFor="let item of items">
    {{getCount(item.value) | async}}
  </ion-item> 

ts文件代码:

export class LognPage {
  public items = [{ value: 1 }, { value: 2 }, { value: 3 }, { value: 4 }, { value: 5 }, { value: 6 }];

  getCount(value) {
    new Promise((reject, resolve) => {
      setTimeout(() => {
        resolve("value " + value); // this is called infinite number of times
      }, 2000);
    });
  }
}

有人提供任何帮助吗?

无限呼唤的原因是什么,我不能这样做吗?

1 个答案:

答案 0 :(得分:0)

不要在模板中使用功能:

valueList : Promise<any[]>

ngOnInit(){

  for(item of items){
    getCount(item ).then((value)=>{
       valueList.push(value);
   })
  }

}



getCount(value) {
    new Promise((reject, resolve) => {
      setTimeout(() => {
        resolve("value " + value); // this is called infinite number of times
      }, 2000);
    });
  }

html:

<ion-item *ngFor="let value of valueList">
    {{value }}
  </ion-item>