Javascript 按角度对多个相同表进行排序

Javascript 按角度对多个相同表进行排序,javascript,angularjs,Javascript,Angularjs,我正在尝试用角度对相同的结构表进行排序,但不同的数据进行排序。 Plunker示例可以看到 问题是如何仅对特定表进行排序,而不是对所有表进行排序。我想我可以通过创建新的变量来为不同的表存储不同的值来实现这个结果,但是有任何替代和有效的方法可以做到这一点 样本数据: $scope.friends = [{name:'John', phone:'555-1212', age:10}, {name:'Mary', phone:'555-9876', age:19}, {na

我正在尝试用角度对相同的结构表进行排序,但不同的数据进行排序。 Plunker示例可以看到

问题是如何仅对特定表进行排序,而不是对所有表进行排序。我想我可以通过创建新的变量来为不同的表存储不同的值来实现这个结果,但是有任何替代和有效的方法可以做到这一点

样本数据:

$scope.friends =
    [{name:'John', phone:'555-1212', age:10},
     {name:'Mary', phone:'555-9876', age:19},
     {name:'Mike', phone:'555-4321', age:21},
     {name:'Adam', phone:'555-5678', age:35},
     {name:'Julie', phone:'555-8765', age:29}];

$scope.close_friends =
    [{name:'Alan', phone:'555-1212', age:21},
     {name:'Jen', phone:'555-9876', age:29},
     {name:'David', phone:'555-4321', age:24},
     {name:'Raya', phone:'555-5678', age:25},
     {name:'Brok', phone:'555-8765', age:28}];

$scope.very_close_friends =
    [{name:'Peter', phone:'555-1212', age:41},
     {name:'Beck', phone:'555-9876', age:39}];

在不使用订单功能的情况下:

<table class="friend">
    <tr>
     <th>
         <button ng-click="reverse1=!reverse1; predicate = 'name'">Name</button>
         <span class="sortorder" ng-if="predicate === 'name'" ng-class="{reverse:reverse1}"></span>
     </th>
     <th>
         <button ng-click="reverse1=!reverse1; predicate = 'phone'">Phone Number</button>
         <span class="sortorder" ng-if="predicate === 'phone'" ng-class="{reverse:reverse1}"></span>
     </th>
     <th>
         <button ng-click="reverse1=!reverse1; predicate = 'age'">Age</button>
         <span class="sortorder" ng-if=" predicate === 'age'" ng-class="{reverse:reverse1}"></span>
     </th>
    </tr>
    <tr ng-repeat="friend in friends | orderBy:predicate:reverse1">
      <td>{{friend.name}}</td>
      <td>{{friend.phone}}</td>
      <td>{{friend.age}}</td>
    </tr>
  </table>

名称
电话号码
年龄
{{friend.name}
{{朋友.电话}
{{friend.age}

plunker:

向每个数组添加orderBy属性,并在ng repeat中按该属性排序

 <tr ng-repeat="friend in friends | orderBy:friends.orderBy">


如果你真的有这样各种类似的列表,我建议你研究一下为它创建一个指令或组件。这将更有效率。

使用$filter为数据选择正确的排序。您能为您的答案创建一个plunker吗?只需$filter正确的数组我看不出这里有什么问题?这很简单,可以实现我需要做的。非常感谢!另外一个问题,在长期维护中,我们可以创建一个函数并处理该函数中的所有内容吗?是的,但这不是严格必要的,只是记住对排序顺序使用单独的变量或单独的排序函数,由您决定。我遇到了谓词的问题,比如,如果谓词有这样的空格
my name
,排序不起作用,它抛出了一些错误,我们对此有什么解决方法吗?因为OrderBy不可能是谓词,它实际上有点不同,不完全相同,但感谢您的回答!