Angularjs orderBy不适用于angular js中的嵌套数组
在以下情况下,Angularjs orderBy不适用于angular js中的嵌套数组,angularjs,angularjs-filter,Angularjs,Angularjs Filter,在以下情况下,orderBy过滤器不适用于point属性和name。我不知道为什么?这是我在小提琴上的例子 模板: <div ng-controller="AppCtrl"> <table> <tr> <th style="width:100px;" ng-click="pred='name'">name</th> <th style="width:100px
orderBy
过滤器不适用于point
属性和name
。我不知道为什么?这是我在小提琴上的例子
模板:
<div ng-controller="AppCtrl">
<table>
<tr>
<th style="width:100px;" ng-click="pred='name'">name</th>
<th style="width:100px;">id</th>
<th style="width:100px;" ng-click="pred='points'">point</th>
</tr>
<tbody ng-repeat="user in ranking | orderBy:pred">
<tr ng-repeat="tab in user.tabs | orderBy:pred">
<td style="width:100px;">{{user.name}}</td>
<td style="width:100px;">{{tab.tabId}}</td>
<td style="width:100px;">{{tab.points}}</td>
</tr>
</tbody>
</table>
</div>
您必须定义一个特定的排序函数。很好的例子[here][1][1]:您希望angular如何使用“point”进行排序?当没有任何东西被称为“点”时?这是我的拼写错误@yunandtidus,但即使它不起作用,当每个项目中有几个点时,您希望Angle如何按点排序?您需要在此处实现比较功能:
var app = angular.module('app', []);
function AppCtrl($scope) {
$scope.currentTab = 1
$scope.ranking = [
{
'uId': 2,
'name': 'Jeremy',
'tabs': [
{
'tabId': 1,
'points': 100,
},
{
'tabId': 2,
'points': 10
}
],
},
{
'uId': 3,
'name': 'Jordon',
'tabs': [
{
'tabId': 1,
'points': 180,
},
{
'tabId': 2,
'points': 5
}
],
}
]
}