【问题标题】:angularJs multiple orderByangularJs 多个 orderBy
【发布时间】:2018-04-05 18:47:17
【问题描述】:

我在 AngularJs 中使用 orderBy 功能。我的要求是按升序对姓氏进行排序,按降序对名称列进行排序。我可以使用 '+' 和 '-' 来解决这个问题。 但我想要一些动态机制来处理这个问题。无论如何我可以利用 angularjs 来解决我的问题,还是应该继续编写自己的自定义排序功能?

    <tr ng-repeat="contact in contacts | orderBy:['surname','name']:true">

正如我之前所说,下面的代码将解决此问题,

    <tr ng-repeat="contact in contacts | orderBy:['-surname','+name']">

但是这里的 surname 属性会一直变化,并且在表格排序时它的 asc/dec 动态变化。

    <tr ng-repeat="contact in contacts | orderBy:['+salary','+name']">
    <tr ng-repeat="contact in contacts | orderBy:['-age','+name']">

【问题讨论】:

    标签: javascript angularjs sorting


    【解决方案1】:

    您可以使用 $scope 中的值来更改 ng-repeat 的子句的顺序。 将 ng-repeat 中的 orderOptions 范围变量用于 orderBy 过滤器。

     <tr ng-repeat="contact in contacts | orderBy:orderOptions">
    

    在控制器范围内设置 orderOptions。

    $scope.orderOptions = ['+salary','+name']
    

    您可以在需要使用函数时更新 oderOptions。表格的排序顺序会相应更新。

    $scope.orderOptions = ['-age','+name']
    

    【讨论】:

    • 好的..我有类似的想法来使用范围变量并在控制器中处理..会尝试
    猜你喜欢
    • 2016-03-15
    • 2015-04-12
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多