Второй уровень сортировки с использованием смарт-таблицы?

У меня есть нумерация страниц с использованием смарт-таблицы. Я хочу отсортировать, используя сначала статус, а затем код. Я не могу использовать 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"]); в вашем контроллере, чтобы отсортировать ваши данные, прежде чем предоставлять их в таблицу. + а также - может быть использован для установки сортировки по убыванию или по возрастанию.

Другие вопросы по тегам