0
で彼らに10を表示::保存変数に値をサブスクライブし、私はこのような検索サービスを持っている時
public getAllData(): Observable<UInfo> {
return this.http.get<any>('/assets/data/info-data.json');
}
そして、私のcomponent.ts上の私は、この持っている:
public getData(){
this.searchService.getAllData().subscribe(results => {
this.infoData= results['data'];
this.displayData=this.infoData.slice(0,10);
});
を}
Andn私はInitでgetData()を呼び出します。 私がする必要があるのは、一度に10行を表示するためです.10個を追加するには、infoData(0,10)と各スクロールをスライスする必要があります。
onScroll(){
if(this.allInfoData.length < this.infoData.length){
let len=this.allInfoData.length;
for(this.i=len;this.i<=len+20;this.i++){
this.allInfoData.push(this.infoData[this.i]);
}
}
}
しかし、事はngOnInit上で、getAllData機能はすでに存在しているすべての行を返します。
これは私が試したものです。
変数にすべてのデータを格納するにはどうすればよいですか?onInitでは10を表示し、その後はすべてのスクロールでさらにデータを追加します。
<div class="col-md-11 tableDiv" infiniteScroll [infiniteScrollDistance]="2"
[infiniteScrollThrottle]="100" (scrolled)="onScroll()">
<div >
<table class="table table-striped">
<thead class="table-bordered">
<tr>
<th>Date</th>
<th>Name</th>
<th>Color</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let row of displayData">
<td>{{row.Date| date:'MM/dd/yy'}} </td>
<td>{{row.Name}}</td>
<td>{{row.Color}}</td>
</tr>
</tbody>
</table>
</div>
ありがとう表示したいものを自分の
onScroll
方法のスライスで次に!そのロジックはngx-infinite scrollによって実装されていますが、簡単な質問です。 ここでは、表示データは0〜10、次に0〜20、0〜30です。 この機能では、スライスされた初期オブジェクトに+10と+10を付加することしか考えていませんでした。 –
@ArEmil '10-20'、' 20-30'などをスライスして表示データに追加します。 'newItems = this.infoData.slice(currentLength、currentLength + 10); this.displayData.push(... newItems); ' – LLai
ありがとうございます。 displayDataを出力するときにonScroll関数を呼び出すとコンソールログにプッシュしてログを記録しますが、これらの値はプッシュされます。 しかし、彼らはテーブルに追加されません。 * ngFor = "displayDataのデータを受け取ります" プッシュ時にデータが表示されないので、テーブルに表示する必要がありますか? –