#search #angular #pagination #ng2-bootstrap
#Поиск #angular #разбивка на страницы #ng2-bootstrap
Вопрос:
Я получаю проблему с разбиением на страницы при поиске. Разбивка на страницы работает нормально, но когда я использовал окно поиска и ввел несколько букв, результаты изменились. Из-за разного результата разбивка на страницы ведет себя нерегулярно.
Я использую PaginationModule
из 'ng2-bootstrap'
Я получаю users
список с разбиением на страницы.. Вот мой users.component.ts
export class UserListComponent implements OnInit {
users: IUser[];
term : string = '';
public itemsPerPage: number = 1;
public totalItems: number = 0;
public currentPage: number = 1;
ngOnInit() {
this.getUsers();
}
getUsers(){
this.dataService.getUsers(this.currentPage, this.itemsPerPage)
.subscribe((users: PaginatedResult<IUser[]>) => {
this.users = users;
this.totalItems = users['pagination']['TotalItems'];
});
}
pageChanged(event: any, term: string): void {
this.currentPage = event.page;
if(term != '')
this.search(term);
else
this.getUsers();
}
search(term) {
this.dataService.searchUserList(term, this.currentPage, this.itemsPerPage)
.subscribe((items : PaginatedResult<IUser[]>) => {
this.totalItems = items['pagination']['TotalItems'];
this.users = items;
});
}
}
Это users.component.html
//Search input box
<input #term (keyup)="search(term.value)" value="" class="form-control" placeholder="Search" autofocus>
//pagination
<pagination [boundaryLinks]="true" [totalItems]="totalItems" [itemsPerPage]="itemsPerPage" [(ngModel)]="currentPage" class="pagination-sm"
previousText="amp;lsaquo;" nextText="amp;rsaquo;" firstText="amp;laquo;" lastText="amp;raquo;" (pageChanged)="pageChanged($event, term.value)"></pagination>
Проблема в том, что когда я нахожусь в page:3
и что-то ищу.. И результат, который я получил, содержит только 1 страницу после поиска, после чего я получил эту ошибку
ORIGINAL EXCEPTION: Expression has changed after it was checked. Previous value: '3'. Current value: '1'.
Я знаю, это потому, что я был на page:3
и после результата поиска у меня есть только 1 page
вот почему разбивка на страницы ведет себя нерегулярно.
Есть ли какое-либо решение для этого?