Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

299
Vistas
El enlace de datos bidireccional no funciona correctamente

Estoy usando un componente de paginación de ng-bootstrap. Coloqué este componente dentro de un componente genérico que también contiene un menú desplegable de selección para determinar cuántos elementos por página se mostrarán. Emití un evento de este componente genérico y lo atrapé en el componente principal (member-list.component). El caso es que estoy seleccionando la página anterior en lugar de la actual en el componente padre. ¿Alguien puede ayudarme? Gracias de antemano.

Problema:

ingrese la descripción de la imagen aquí

paginacion.componente.html:

 <ngb-pagination [collectionSize]="120" [(page)]="page" (click)="setPageNumber()" [maxSize]="5" [pageSize]="pageSize" [rotate]="true" [boundaryLinks]="true"></ngb-pagination> <select class="custom-select mb-3" (change)="setPageSize(selectSize)" #selectSize> <option value="10" selected>10</option> <option value="20">20</option> <option value="50">50</option> </select> <hr> <pre>Current page from generic component: {{page}}</pre>

paginación.componente.ts:

 import { Component, Input, OnInit, Output, EventEmitter} from '@angular/core'; @Component({ selector: 'app-pagination', templateUrl: './pagination.component.html', styleUrls: ['./pagination.component.css'] }) export class PaginationComponent implements OnInit { @Input() page: number; @Input() pageSize: number; @Input() collectionSize: number; @Output() pageNumber = new EventEmitter<number>(); constructor() { } ngOnInit(): void { this.pageSize = 10; } setPageSize(option: any) { this.pageSize = Number(option.value) } setPageNumber() { this.pageNumber.emit(this.page); } }

lista-de-miembros.componente.html:

 <app-pagination [page]="page" [collectionSize]="120" (pageNumber)="page=$event"></app-pagination> <pre>Current page from member list: {{page}}</pre>
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Debe usar pageChange, no (hacer clic). Es como dividir [(ngModel)] en [ngModel] y (ngModelChange)

 <ngb-pagination [page]="page" (pageChange)="page=$event;setPageNumber()" [maxSize]="5" [pageSize]="pageSize" [rotate]="true" [boundaryLinks]="true"> </ngb-pagination>

NOTA: también puede usar (pageChange)="setPageNumber($event)" y en setPAgeNumber cambiar también la variable this.page

De lo contrario, su "clic" se ejecuta antes de que ngb-paginator cambie la página

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda