我有项目列表,并希望通过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);
});
}
}
有人提供任何帮助吗?
无限呼唤的原因是什么,我不能这样做吗?
答案 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>