2017-03-01 58 views
0

我正在嘗試根據此https://ionicframework.com/docs/v2/api/components/infinite-scroll/InfiniteScroll/離子根據無限滾動。無限滾動在離子2

每件事情都很好,我可以得到顯示的數字和加載器。

當我試圖實現一個字符串數組我得到錯誤

這裏是我的代碼

<ion-content> 

<ion-list> 
    <ion-item *ngFor="let i of items">{{i}}</ion-item> 
</ion-list> 

<ion-infinite-scroll (ionInfinite)="doInfinite($event)"> 
    <ion-infinite-scroll-content></ion-infinite-scroll-content> 
</ion-infinite-scroll> 

</ion-content> 

我的.ts文件

items = ['apple', 'orange', '1','apple',.......]; 

    doInfinite(infiniteScroll) { 
    console.log('Begin async operation'); 

    setTimeout(() => { 
     for (let i = 0; i < 10; i++) { 
     this.items.push(this.items.length); 
     } 

     console.log('Async operation has ended'); 
     infiniteScroll.complete(); 
    }, 500); 
    } 

這裏是我的錯誤我正面臨着

Argument of type 'number' is not assignable to parameter of type 'string'. 

L35: for (let i = 0; i < 10; i++) { 
    L36: this.items.push(this.items.length); 
+0

在這個例子中,'items'數組包含了索引...每當一個新數字加上'this.items.length'時。你有一串字符串。你將不得不根據你的要求添加 –

+0

你能否爲我提供一個plunkr或演示動態數組 –

+0

@suraj我試圖改變它,但不能得到那 –

回答

1

您不能將this.items.length設置爲字符串數組。

items = ['apple', 'orange', '1','apple',.......]; 
items2=['dfv',...];//ten additional items for demo. the additional items can come from anywhere else eg. an http request. 

    doInfinite(infiniteScroll) { 
    console.log('Begin async operation'); 

    setTimeout(() => { 
     for (let i = 0; i < 10; i++) { 
     this.items.push(this.items2[i]); 
     } 

     console.log('Async operation has ended'); 
     infiniteScroll.complete(); 
    }, 500); 
    } 
+0

我也創建了一個單獨的空數組並進行了更改。在http.get請求並將值分配給items數組之後,然後我將item2數組設置爲空,並在我的settimeout函數中使用this.items2.push(this.items [i]),但我無法在我的10個字符串 –

+0

之後得到加載器,你可能想用實際的代碼創建一個問題。不知道從你給的描述中可能會出現什麼問題 –

+0

你能否爲我提供一個可行的PLUNK –