0
ngx-paginationを使用しようとしていますが、いくつかの問題に直面しています。私は角度2にはかなり新しいので、観察可能な人と加入者についてあまり知らない。Rxjsを取得するhttp呼び出しで返されるデータを確認する
私は、HTTP呼び出しを行うと、データを返すサービスがあります。
getData(path: string, page: number=1) : Promise<IData[]> {
return this.http.get(path+'&pageNumber='+page)
.toPromise()
.then(response => {
return response.json() as IData[];
});
}
私は私のコンポーネントで、このデータを消費しています:
:getDataValues(page: number) {
this.loading = true;
this.asyncData = this.getAsyncData(this.queryPath, page)
.do(res => {
this.total = res.total;
this.p = page;
this.loading = false;
})
.map(res => res.items);
}
getAsyncData(path: string, page: number): Observable<any> {
return Observable
.of({
items: this.repository.getData(path, page),
total: this.dataValues.length
});
}
そして、私のテンプレートは次のようになりますが
<div class="list">
<div>
<article class="entity" *ngFor="let data of asyncData | async | paginate: { id: 'server', itemsPerPage: 10, currentPage: p, totalItems: total }">
</article>
</div>
<pagination-controls (pageChange)="getDataValues($event)" id="server"></pagination-controls>
私は解決する約束を待つ必要があるので、これは間違っていると私は知っていますが、私はそれをどうやって行うのか分かりません。 NGX-ページネーションは観察可能見込ん古い角度HTTPサービス(使用している1、新規の方がHttpClientを呼ばれている)の「getメソッドの型シグネチャを見ればそうasyncData
は、Observable
観測値と約束を混合すると、制御フローが乱雑になります。通常、これは開発者がRxJSで十分に快適でない場合に発生します。あなたが本当にこれを必要とし、共通の分母(観測値)に固執しない限り、それをしないでください。 Btw、上記のコードは期待どおりに動作しません.getAsyncDataでは 'items'は値であると予想されますが、値の約束です(答えが示唆するようにtoPromiseを取り除く場合は値の観測値です)。 – estus