使用orderBy作为数组中的值

时间:2016-09-06 11:20:41

标签: angularjs angularjs-ng-repeat angularjs-orderby

我有嵌套的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]的降序排列结果。

3 个答案:

答案 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>

这样我设法显示我想要排序的数组,它工作得很好。谢谢大家的帮助。