如何使用离子段管理infiniteScroll

时间:2017-09-10 05:13:48

标签: ionic2 ionic3

我正在使用最新的ionic 3.6.0

我遇到infiniteScrollion-segment的问题,当其中一个细分到达终点时infiniteScroll.enable(false)。然后切换到另一个段,即使我将boolean值放在变量中并在构造函数级别初始化它,也不会启用infiniteScroll。

.TS:

doInfinite(infiniteScroll){
   if (this.segment === 'all'){
     this.doInfiniteForSegmentAll(infiniteScroll);
   } else
   if (this.segment === 'featured'){
     this.doInfiniteForSegmentFeatured(infiniteScroll);
   }
 }

doInfiniteForSegmentAll(infiniteScroll){
    this.service.getAllData().subscribe(res => {
       if (res.length > 0){
         //Do stuff
       } else {
         infiniteScroll.enable(false)
         //show a toast
      }
  });
 }

doInfiniteForSegmentFeatured(infiniteScroll){
     this.service.getFeaturedData().subscribe(res => {
       if (res.length > 0){
         //Do stuff
       } else {
         infiniteScroll.enable(false)
         //show a toast
      }
    });
  }

html的:

 <ion-infinite-scroll *ngIf="segment === 'all' || segment === 'featured'" (ionInfinite)="doInfinite($event)" threshold="50px">
    <ion-infinite-scroll-content
      loadingText="Loading" loadingSpinner="dots"></ion-infinite-scroll-content>
 </ion-infinite-scroll>

1 个答案:

答案 0 :(得分:0)

好的,我认为ion-infinite-scroll似乎应该为每个细分市场分开..因此:

html的:

 <ion-infinite-scroll *ngIf="segment === 'all'" (ionInfinite)="doInfinite($event)" threshold="50px">
    <ion-infinite-scroll-content
      loadingText="Loading" loadingSpinner="dots"></ion-infinite-scroll-content>
 </ion-infinite-scroll>

 <ion-infinite-scroll *ngIf="segment === 'featured'" (ionInfinite)="doInfinite($event)" threshold="50px">
    <ion-infinite-scroll-content
      loadingText="Loading" loadingSpinner="dots"></ion-infinite-scroll-content>
 </ion-infinite-scroll>

这是因为我没有使用ngSwitch并且每个段只有一种循环列表。