Как добавить шаблон пейджера с данными в Angular ngx datatable - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь создать настраиваемую нумерацию страниц для плавающей строки с данными ngx (https://github.com/swimlane/ngx-datatable).

Пользовательский шаблон для нижнего колонтитула работает нормально (согласно документации: http://swimlane.github.io/ngx-datatable/#footer), и нумерация страниц)также работает, как и ожидалось, но обратите внимание, что в компоненте DOM есть код с пользовательским пейджером. Он не отображается в веб-интерфейсе, поскольку кажется, что компонент не принимает пользовательские шаблоны.

Кто-нибудь знает, как правильно добавить пользовательский шаблон в пейджер данных ngx-datatable?

Моя конкретная проблема заключается в том, что мне нужно заменить левый и правый элементы по умолчанию на fontawesome компоненты, но, возможно, мне также хотелось бычтобы сделать некоторые другие косметические или функциональные изменения там.

Мой код.

<ngx-datatable
                        *ngIf="(files | objectPropertyLikeStringPipe:fileNameLikeDataContract | objectHasTagPipe:searchTags:'tags').length"
                        class="classic show-overflow"
                        bbsNgxResizeWatcher
                        [rowHeight]="undefined"
                        [columnMode]="'flex'"
                        (activate)="tableActivate($event)"
                        [rows]="files | objectPropertyLikeStringPipe:fileNameLikeDataContract | objectHasTagPipe:searchTags:'tags'"
                        [sorts]="[{prop:'type',dir:'asc'},{prop:'fileName',dir:'asc'}]"
                        [columns]="columns"
                        [selected]="selected"
                        [selectionType]="'checkbox'"
                        (select)="onSelect($event)"
                        [limit]="2"
                        [footerHeight]="50"
                >
                    <ngx-datatable-footer>
                        <ng-template
                                ngx-datatable-footer-template
                                let-rowCount="rowCount"
                                let-pageSize="pageSize"
                                let-selectedCount="selectedCount"
                                let-curPage="curPage"
                                let-offset="offset"
                                let-isVisible="isVisible">
                            <div class="page-count">
                                <span *ngIf="selectedMessage">
                                  {{selectedCount.toLocaleString()}} {{selectedMessage}} /
                                </span>
                                {{rowCount.toLocaleString()}} {{totalMessage}}
                            </div>
                            <datatable-pager
                                    #ngxDatatablePager
                                    [pagerLeftArrowIcon]="'datatable-icon-left'"
                                    [pagerRightArrowIcon]="'datatable-icon-right'"
                                    [pagerPreviousIcon]="'datatable-icon-prev'"
                                    [pagerNextIcon]="'datatable-icon-skip'"
                                    [page]="curPage"
                                    [size]="pageSize"
                                    [count]="rowCount"
                                    [hidden]="!((rowCount / pageSize) > 1)"
                                    (change)="ngxDatatable.onFooterPage($event)">
                                <ng-template>
                                    <ul class="pager">
                                        <li [class.disabled]="!ngxDatatablePager.canPrevious()" [class.target-p]="true">
                                            <a
                                                    role="button"
                                                    aria-label="go to first page"
                                                    href="javascript:void(0)"
                                                    (click)="ngxDatatablePager.selectPage(1)">

                                                <fa-icon    [icon]="['fal', 'angle-left']"
                                                ></fa-icon>
                                                <p>asdklslac</p>
                                            </a>
                                        </li>
                                        <li [class.disabled]="!ngxDatatablePager.canPrevious()">
                                            <a
                                                    role="button"
                                                    aria-label="go to previous page"
                                                    href="javascript:void(0)"
                                                    (click)="ngxDatatablePager.prevPage()">
                                                <i class="{{pagerLeftArrowIcon}}"></i>
                                            </a>
                                        </li>
                                        <li
                                                role="button"
                                                [attr.aria-label]="'page ' + pg.number"
                                                class="pages"
                                                *ngFor="let pg of pages"
                                                [class.active]="pg.number === page">
                                            <a
                                                    href="javascript:void(0)"
                                                    (click)="ngxDatatablePager.selectPage(pg.number)">
                                                {{pg.text}}-1
                                            </a>
                                        </li>
                                        <li [class.disabled]="!ngxDatatablePager.canNext()">
                                            <a
                                                    role="button"
                                                    aria-label="go to next page"
                                                    href="javascript:void(0)"
                                                    (click)="ngxDatatablePager.nextPage()">
                                                <i class="{{pagerRightArrowIcon}}"></i>
                                            </a>
                                        </li>
                                        <li [class.disabled]="!ngxDatatablePager.canNext()">
                                            <a
                                                    role="button"
                                                    aria-label="go to last page"
                                                    href="javascript:void(0)"
                                                    (click)="ngxDatatablePager.selectPage(totalPages)">
                                                <i class="{{pagerNextIcon}}"></i>
                                            </a>
                                        </li>
                                    </ul>
                                </ng-template>
                            </datatable-pager>
                        </ng-template>
                    </ngx-datatable-footer>

                </ngx-datatable>

Визуальный вывод (PS! Нумерация страниц по-прежнему по умолчанию. Он не использует мой ng-шаблон пагинации!):

enter image description here

1 Ответ

0 голосов
/ 15 февраля 2019

Согласно "pager.component.ts" - вы не можете настроить его (компонент 'datatable-pager').Вы можете попытаться создать свой собственный с аналогичным поведением.

...