如果标志为true-orderby angularJS,则对列进行排序

时间:2015-04-08 05:52:50

标签: angularjs

我有一个默认情况下在name列上排序的表。我想增强它以使该排序行为基于isSortingRequired标志可选。我如何提供条件{{我模板中的1}}子句。

2 个答案:

答案 0 :(得分:2)

您可以使用三元运算符

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

Demo

答案 1 :(得分: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。这解决了我的问题。