离子2-无限滚动不在第二个滚动上调用方法

时间:2017-07-18 03:37:54

标签: javascript angular typescript ionic2

我使用ion-tab来显示包含inboxitem并使用ion-list的网页(ion-infinite-scroll)。

我在inboxitem.html

中有以下代码
<ion-content class="inbox can-swipe-list">
    <ion-list>
        <ion-list-header>
            <ion-select [(ngModel)]="selectedOption" [selectOptions]="filterOptionSettings" (ngModelChange)="getFilteredList()">
                <ion-option value="{{option.value}}" *ngFor="let option of listInboxFilterOptions; let i=index" [selected]="i==0">{{option.name}}</ion-option>
            </ion-select>
        </ion-list-header>

        <ion-item-sliding *ngFor="let list of inboxList; let j=index">
            <ion-item class="listWithReason" tappable (click)="ViewPopupDetails(j)">
                <h2>
                    <span>{{list.fullname | filterpipes:'manipulatename'}}<br /><small>{{list.leavename}}</small></span>
                    <div> <ion-icon md="md-calendar" ios="md-calendar"></ion-icon> {{list.fromdate}}{{list.todate!=null ? " to ":" " }}{{list.todate}}</div>
                </h2>
                <p *ngIf="list.reason!=''">{{list.reason}}</p>
            </ion-item>

            <ion-item-options side="right" *ngIf="list.empphone=='' || list.empphone==null">
                <button ion-button color="grey" class="no-phone">No phone</button>
            </ion-item-options>
        </ion-item-sliding>

         <ion-item class="item-empty-row" *ngIf="!inboxList.length > 0">
            {{noRecordsFound}}
        </ion-item>
    </ion-list>

    <ion-infinite-scroll *ngIf="infiniteLoading" (ionInfinite)="loadInboxList(false)" distance="1%">
        <ion-infinite-scroll-content></ion-infinite-scroll-content>
    </ion-infinite-scroll>
</ion-content>

问题

  1. 默认情况下会加载20条记录
  2. 在滚动时,它会再加载20个。
  3. 但在第二次滚动时,它只显示旋转动画,但不会加载任何记录。也就是说,在第二次滚动中,它根本不会调用loadInboxList方法。所以很清楚它在loadInboxList方法中没有错,因为在第二个卷轴上根本没有调用它。
  4. My ionic和cordova版本

    Ionic Framework: 3.5.0
    Ionic App Scripts: 1.3.9
    Angular Core: 4.1.3
    Angular Compiler CLI: 4.1.3
    Node: 6.10.3
    

    任何帮助都将受到高度赞赏

1 个答案:

答案 0 :(得分:2)

确保在loadInboxList()中调用 infiniteScroll.complete();

如果你在代码中调用infiniteScroll.enable(false),这将阻止滚动在任何后续滚动上工作,直到你再次启用它为止。

修改

现在我注意到你没有在你的(ionInfinite)方法中传递事件 -

它应该是这样的:

(ionInfinite)="loadInboxList($event)"

并在你的.ts

loadInboxList(infiniteScroll){
     ...your code 
     infiniteScroll.complete()
}