2015-04-08 7 views
0

У меня есть таблица, которая сортируется по столбцу name по умолчанию. Я хочу улучшить его, чтобы сделать это поведение сортировки необязательным на основе флага isSortingRequired. Как я могу предоставить условный orderby статья в моем шаблоне.Сортировка столбцов, если флаг имеет значение true-orderby angularJS

ответ

2
orderBy:(isSortingRequired?'CONDITION_FOR_SORT_REQUIRED':'CONDITION_FOR_SORT_NOT_REQUIRED') 

Когда '' передается к orderby фильтру пытается сортировать hashkey объекта, это может создать проблемы в порядке записи. Решением является использование настраиваемого фильтра, как определено ниже, в котором используется встроенный фильтр orderBy, если флаг является истинным.

.filter('customOrder',function($filter) 
    { 
     return function(friend, prediate,isSortRequired){ 
      if(!isSortRequired) 
      return friend; 
      else 
      { 
      var result = $filter("orderBy")(friend, prediate); 
       return result; 
      } 

     } 
    }); 

Раствор можно увидеть here .Это зафиксировал мою проблему.

2

Вы можете использовать тройной оператор, как

orderBy:(isSortingRequired?'CONDITION_FOR_SORT_REQUIRED':'CONDITION_FOR_SORT_NOT_REQUIRED') 

Demo

+0

В демонстрации plnkr Я просто отображался на основе статического флага. Проверьте выход, изменив его значение. –

+0

это просто отлично работает, если число строк равно 10, если имеется более 10 записей, а флаг - false, он просто дает мне скремблированный заказ. Демонстрируется в этом plunker http://plnkr.co/edit/YZBTYCCdpl6fgUcmlz67?p= Предварительный просмотр –

+0

plnkr.co/edit/YZBTYCCdpl6fgUcmlz67?p=preview –

Смежные вопросы