2017-10-30 3 views
1

私の目的は、「次へ」ボタンをクリックするたびにdbから次の10項目を取得することです。(サーバー側)MarkLogicからデータを取得して一度にいくつかページを作成する方法

したがって、システムから遅れている可能性が高いdbからのショットで100レコードを取得するのではなく、一度に10レコードしか取得しません。以下は

はcomponent.tsでresource.java

@Autowired 
    protected QueryManager queryManager; 

    @RequestMapping(value = "/retrieveObjects/{page}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) 
    public ResponseEntity<Object[]> retrieveObjects(@PathVariable("page") String page){ 
     int pageNum = Integer.valueOf(page); 
     int start = PAGE_SIZE_TEN * (pageNum - 1) + 1; 
     SearchHandle resultsHandle = new SearchHandle(); 
     queryDef.setDirectory(DIRECTORY); 
     queryManager.setPageLength(PAGE_SIZE_TEN); 
     queryManager.search(queryDef, resultsHandle, start); 

     return new ResponseEntity<Object[]>(handleSearch(resultsHandle), HttpStatus.OK); 
    } 

...私は私が行方不明です他に何、わからない何をやったかの抜粋です

this.restclient.getjson('/api/retrieveObjects/'+page) 
    .subscribe(objects => { 
     for(let i=0; i<objects .length; i++){ 
     this.objects.push(objects[i]); 
     } 
    }); 

、コンポーネント:

<div *ngFor="let object of objects | paginate: { itemsPerPage: 10, currentPage: p }"> 
<div (click)="gotoObject(object.id)"> 
    {{object.id}} 
</div> 
</div> 
<pagination-controls class="pagination" (pageChange)="p = $event;getPage($event)"></pagination-controls> 

私は100のレコードを持っています。

しかし、結果は最初の10個のレコードのうちの1ページのみを表示し、「次へ」ボタンは無効になります。 enter image description here

「次へ」ボタンをクリックすると、最初の10レコードが1ページ分表示され、次の10レコードを取得するためにapi/retrieveObjects /が呼び出されます。

答えて

2

私はあなたがサーバー側のページネーションを実装したいと思う:あなたは1つの余分なパラメータに多くのためのtotalItems

{ 
    "count": 100, // no of total records 
    "data": [ // chunk of data (in your case chunk of 10 records) 
    { /* item 1 */ }, 
    { /* item 2 */ }, 
    { /* item 3 */ }, 
    { /* ... */ }, 
    { /* item 10 */ } 
    ] 
} 

<div *ngFor="let object of objects.data | paginate: { itemsPerPage: 10, currentPage: p, totalItems: objects.count }"> 

に合格する必要がありそのために

、お読みください: http://michaelbromley.github.io/ngx-pagination/#/

+0

OMGを!それだけが必要。 – Ronaldo

+0

これは、まだアイテムの合計数を取得する必要があることを意味します。まだ処理時間が遅くなるのでしょうか? – Ronaldo

+0

@Ronaldo、合計レコードが処理速度を落とすことはありません。それ以上の時間は数ミリ秒かかるかもしれません。 –

関連する問題