AngularJS orderby with empty field

前端 未结 9 1756
北海茫月
北海茫月 2020-12-05 13:19

I am ordering a my data and its working all correcty except some fields are empty or have no value. When ordered these empty field come up first. For example when ordering n

9条回答
  •  再見小時候
    2020-12-05 14:04

    I created a gist with an alternative filter based on the previous solutions: https://gist.github.com/360disrupt/1432ee1cd1685a0baf8967dc70ae14b1

    The filter extends the existing angular filter:

    angular.module 'tsd.orderByEmptyLast', []
      .filter 'orderByEmptyLast', ($filter) ->
        return (list, predicate, reverse)->
          orderedList = $filter('orderBy')(list, if reverse then ['!' + predicate, '-' + predicate] else ['!' + predicate, predicate] )
          return orderedList
    

    On newer angular versions you might need to include orderByFilter instead of using $filter

    angular.module 'tsd.orderByEmptyLast', ['orderByFilter']
      .filter 'orderByEmptyLast', () ->
        return (list, predicate, reverse)->
          orderedList = orderByFilter(list, if reverse then ['!' + predicate, '-' + predicate] else ['!' + predicate, predicate] )
          return orderedList
    

提交回复
热议问题