2015-08-09 79 views
1

我的下一個JSON -角 - ORDERBY數值

{ 


    "json" : [ 

    { "200" : "5"}, 


    { "302" : "6"}, 


    { "400" : "1" } 

    ] 

} 

,我想在一個遞減順序值來訂購吧 - 這意味着順序應該是由 - 行6比一個5,最後的1

我試圖用NG-重複,像這樣:

<tbody ng-repeat="(key, data) in json | orderBy: 'data':true"> 
      <tr> 
       <td class="col-md-3">{{key}}</td> 
       <td class="col-md-3">{{data}}</td> 
      </tr> 
    </tbody> 

但這並沒有爲我工作。

我在做什麼錯?

感謝您的任何幫助

+0

這是非常奇怪的數據,你可以改變JSON的結構?所以它至少從一個項目到下一個項目具有一致的密鑰?例如:http://pastie.org/10339296 –

+0

[angular documentation](https://docs.angularjs.org/api/ng/directive/ngRepeat#!)在這個問題上非常明確:當使用'ng-重複「來迭代對象屬性,不保證排序,並且不可能在不將數據轉換爲數組的情況下應用排序。 – Claies

回答

1

使用您自己的訂單功能。

控制器:

$scope.testFn = function(data){ 
    return data[Object.keys(data)[0]]; 
}; 

模板:

<tbody ng-repeat="(key, data) in json | orderBy: testFn"> 
+0

並'返回-data [Object.keys(data)[0]];'爲倒序; – user3335966

+0

我試過這段代碼,它似乎不工作。我甚至放了一個-console.warn - 看看它是否進入函數,但它沒有。任何線索爲什麼? – PESfcs

+0

@PESfcs我重做這樣的數據:'$ scope.json = [{「200」:「5」},{「302」:「6」},{「400」:「1」}];'檢查數據ng-repeat已經得到了; (對不起我的英語不好); – user3335966