Второй уровень сортировки с использованием смарт-таблицы?
У меня есть нумерация страниц с использованием смарт-таблицы. Я хочу отсортировать, используя сначала статус, а затем код. Я не могу использовать orderBy из AngularJS, потому что он упорядочит элементы каждой страницы, а не все. И st-sort-default заказов умных таблиц только для одного столбца.
<table st-table="lista.displayedPublications" st-safe-src="lista.publications">
<thead>
<tr>
<th st-sort="publication.status" >STATO</th>
<th st-sort="publication.communicationCode">TREAT CD</th>
<th> ... </th>
</tr>
</thead>
<tbody>
<tr ng-repeat="publication in lista.displayedPublications">
<td>{{publication.status}}</td>
<td>{{publication.communicationCode}}</td>
<td>...</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>
<div st-template="ListaTreatement/pagination.html" st-pagination="" st-items-by-page="10"></div>
</td>
</tr>
</tfoot>
</table>
В контроллере:
public publications: PublicationExtended[];
public displayedPublications = [].concat(this.publications);
constructor(...){
new Api($http).getList(me.comunicationType, me.comunicationStatus).then(
function(response : angular.IHttpPromiseCallbackArg<PublicationExtended[]>) {
me.publications = response.data;
}
}
1 ответ
Решение
Использование $filter("orderBy")($scope.lista.displayedPublications, ["+status", "+code"]);
в вашем контроллере, чтобы отсортировать ваши данные, прежде чем предоставлять их в таблицу. +
а также -
может быть использован для установки сортировки по убыванию или по возрастанию.