Ngx-Bootstrap - Paginación
El componente de paginación ngx-bootstrap proporciona enlaces de paginación o un componente de buscapersonas a su sitio o componente.
Componente de paginación
selector
pagination
Entradas
align - booleano, si es verdadero, alinea cada enlace a los lados del buscapersonas
boundaryLinks - booleano, si es falso, el primer y último botón se ocultarán
customFirstTemplate - TemplateRef <PaginationLinkContext>, plantilla personalizada para el primer enlace
customLastTemplate - TemplateRef <PaginationLinkContext>, plantilla personalizada para el último enlace
customNextTemplate - TemplateRef <PaginationLinkContext>, plantilla personalizada para el siguiente enlace
customPageTemplate - TemplateRef <PaginationLinkContext>, plantilla personalizada para el enlace de la página
customPreviousTemplate - TemplateRef <PaginationLinkContext>, plantilla personalizada para el enlace anterior
directionLinks - booleano, si es falso, los botones anterior y siguiente se ocultarán
disabled - booleano, si el componente de paginación verdadero se desactivará
firstText - booleano, texto del primer botón
itemsPerPage- número, número máximo de elementos por página. Si el valor es menor que 1, se mostrarán todos los elementos en una página.
lastText - cadena, texto del último botón
maxSize - número, número límite para enlaces de página en buscapersonas
nextText - cadena, texto del botón siguiente
pageBtnClass - cadena, agregar clase a <li>
previousText - cadena, texto del botón anterior
rotate - booleano, si es verdadera, la página actual estará en el medio de la lista de páginas
totalItems - número, número total de elementos en todas las páginas
Salidas
numPages - disparado cuando cambia el recuento total de páginas, $ event: número es igual al recuento total de páginas.
pageChanged - disparado cuando se cambió la página, $ event: {page, itemsPerPage} es igual al objeto con el índice de página actual y el número de elementos por página.
Ejemplo
Como vamos a usar una paginación, tenemos que actualizar app.module.ts usado en el capítulo de Modals ngx-bootstrap para usarPaginationModule y PaginationConfig.
Actualice app.module.ts para usar PaginationModule y PaginationConfig.
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
import { TestComponent } from './test/test.component';
import { AccordionModule } from 'ngx-bootstrap/accordion';
import { AlertModule,AlertConfig } from 'ngx-bootstrap/alert';
import { ButtonsModule } from 'ngx-bootstrap/buttons';
import { FormsModule } from '@angular/forms';
import { CarouselModule } from 'ngx-bootstrap/carousel';
import { CollapseModule } from 'ngx-bootstrap/collapse';
import { BsDatepickerModule, BsDatepickerConfig } from 'ngx-bootstrap/datepicker';
import { BsDropdownModule,BsDropdownConfig } from 'ngx-bootstrap/dropdown';
import { PaginationModule,PaginationConfig } from 'ngx-bootstrap/pagination';
@NgModule({
declarations: [
AppComponent,
TestComponent
],
imports: [
BrowserAnimationsModule,
BrowserModule,
AccordionModule,
AlertModule,
ButtonsModule,
FormsModule,
CarouselModule,
CollapseModule,
BsDatepickerModule.forRoot(),
BsDropdownModule,
ModalModule,
PaginationModule
],
providers: [AlertConfig,
BsDatepickerConfig,
BsDropdownConfig,
BsModalService,
PaginationConfig],
bootstrap: [AppComponent]
})
export class AppModule { }
Actualice test.component.html para usar el modal.
test.component.html
<div class="row">
<div class="col-xs-12 col-12">
<div class="content-wrapper">
<p class="content-item" *ngFor="let content of returnedArray">{{content}}</p>
</div>
<pagination [boundaryLinks]="showBoundaryLinks"
[directionLinks]="showDirectionLinks"
[totalItems]="contentArray.length"
[itemsPerPage]="5"
(pageChanged)="pageChanged($event)"></pagination>
</div>
</div>
<div>
<div class="checkbox">
<label><input type="checkbox" [(ngModel)]="showBoundaryLinks">Show Boundary Links</label>
<br/>
<label><input type="checkbox" [(ngModel)]="showDirectionLinks">Show Direction Links</label>
</div>
</div>
Actualice test.component.ts para las variables y métodos correspondientes.
test.component.ts
import { Component, OnInit } from '@angular/core';
import { BsModalService } from 'ngx-bootstrap/modal';
import { PageChangedEvent } from 'ngx-bootstrap/pagination';
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css']
})
export class TestComponent implements OnInit {
contentArray: string[] = new Array(50).fill('');
returnedArray: string[];
showBoundaryLinks: boolean = true;
showDirectionLinks: boolean = true;
constructor() {}
pageChanged(event: PageChangedEvent): void {
const startItem = (event.page - 1) * event.itemsPerPage;
const endItem = event.page * event.itemsPerPage;
this.returnedArray = this.contentArray.slice(startItem, endItem);
}
ngOnInit(): void {
this.contentArray = this.contentArray.map((v: string, i: number) => {
return 'Line '+ (i + 1);
});
this.returnedArray = this.contentArray.slice(0, 5);
}
}
Construir y servir
Ejecute el siguiente comando para iniciar el servidor angular.
ng serve
Una vez que el servidor está en funcionamiento. Abra http: // localhost: 4200. Haga clic en el botón Abrir modal y verifique el siguiente resultado.