我有嵌套的ng-repeat,它从服务器中提取数据:
<div ng-repeat="x in result | filter:sellbox " >
<div ng-repeat="z in x.data | orderBy:'??' " >
{{x.rate_type}} to {{x.name}} {{z[1]}}
</div>
</div>
这是服务器的一部分:
"result":[
{
"id":"BNLN_USD",
"code":"BNLN",
"name":"National Bank Of Georgia (BNLN)",
"currency":"USD",
"rate_type":"reference",
"color":"#4b4a4b",
"legendIndex":1,
"data":[
[
1473033600000,
2.2938
]
]
},
{
"id":"BAGA_USD_B",
"code":"BAGA",
"name":"Bank Of Georgia (BAGA)",
"currency":"USD",
"rate_type":"buy",
"color":"#ed7623",
"dashStyle":"shortdot",
"legendIndex":2,
"data":[
[
1473033600000,
2.25
]
]
}
z [1]在该段中给出2.2938和2.25的值。如何使用orderBy以便按z [1]的降序排列结果。
答案 0 :(得分:1)
自AngularJS 1.3.0-rc.5起,如果没有提供其他参数,orderBy
过滤器将使用其项自动对数组进行排序。
<div ng-repeat="z in x.data | orderBy">{{item}}</div>
答案 1 :(得分:0)
您无法 orderBy 的原因是您的数据是一个数组数组,因此您必须调用自定义orderBy函数。
在您的控制器中
Lemma test2' : f (0,true) = (0,true).
Proof.
rewrite @f_eq. reflexivity.
exact (Build_T (nat * bool)). (* `exact _` won't work *)
Qed.
在HTML中传递customOrder函数并传递true以使其降序
$scope.customOrder = function (content) {
return content.sort()[0];
}
答案 2 :(得分:0)
我设法通过映射我的结果来解决这个问题:
JS:
$rootScope.bank_data = $rootScope.result.map(function(x){
return {
rate_type: x.rate_type,
name: x.name,
value :x.data[0][1]
};
})
HTML:
<input type="searchbox" ng-model="sellbox" ng-hide="buy" >
<div ng-repeat="m in bank_data | filter:sellbox | orderBy:'-value'" > {{m.rate_type}} {{m.name}} {{m.value}}</div>
这样我设法显示我想要排序的数组,它工作得很好。谢谢大家的帮助。