То, что я пытаюсь добиться, чтобы отсортировать массив users
по выбору пользователя, и разделить результат на судоходные страницы 20.Как запустить несколько прикованных, переменные зависимые, трубы в угловом 2
Моих шаблон имеет таблицу, которая выглядит следующим образом
<table>
<thead>...</thead>
<tbody>
<tr
*ngFor="let theUser of users | sort: [ sortField, sortAscending ] | paginate: [ pageNumber-1, pageSize ] ">
<td>{{theUser.id}}</td>
<td>{{theUser.attribute0}}</td>
<td>{{theUser.attribute1}}</td>
<td>{{theUser.attribute2}}</td>
</tr>
</tbody>
</table>
paginate
выводит часть входной таблицы, sort
сортирует его в соответствии с заданными параметрами. Обе трубы были написаны мной и работают как ожидалось индивидуально.
компонент изменяет переменные sortField
и sortAscending
в функции, связанной с щелчками на клетках таблицы заголовков, которая вызывает эту функцию, основанную на щелкнул клетки:
sortUsers(field:string): void{
if(this.sortField==field){
this.sortAscending=!this.sortAscending;
}else{
this.sortAscending=true;
this.sortField=field;
}
this.detector.detectChanges();
}
Где detector
является впрыскивается экземпляр ChangeDetectorRef
. Кроме того, pageNumber
привязан к счетчику с [(ngModel)]
.
Моя проблема заключается в том, что когда я нажимаю на ячейки заголовка таблицы, вывод журнала моего канала указывает, что был вызван только первый канал, и когда я изменяю значение счетчика, вызывается только второй канал. Поведение, которое я ожидаю, заключается в том, что вызываются оба канала.
EDIT: Я работал вокруг этого конкретного случая приращением pageNumber
, называя detectChanges
, затем декремента его и вызывая detectChanges
снова. Я все еще хотел бы знать, как решить общий случай.
EDIT2:Plunker here, связанные с bug report here