對象我有一個對象排序在angularjs NG重複指令
Object {1: "CMAR0002", 2: "CMAR0003", 4: "CMAR0001"}
我正在使用NG-重複指令該對象,但我想通過值排序。但問題是,角度orderBy過濾器需要數組對象。但我只有非常簡單的物體在這裏;)
在此先感謝
對象我有一個對象排序在angularjs NG重複指令
Object {1: "CMAR0002", 2: "CMAR0003", 4: "CMAR0001"}
我正在使用NG-重複指令該對象,但我想通過值排序。但問題是,角度orderBy過濾器需要數組對象。但我只有非常簡單的物體在這裏;)
在此先感謝
這樣做:
<li ng-repeat="(key, value) in Object | orderBy: key">
{{ key }} - {{ value }}
</li>
它不工作,它應該按值排序。 – Garry
通過Angular ng-repeat documentation:
It is possible to get ngRepeat to iterate over the properties...
However, there are a limitations compared to array iteration, like "The built-in filters orderBy and filter do not work with objects, and will throw if used with one"
如果您正在碰到這些限制之一,推薦的工作你需要將你的對象轉換爲一個數組,然後在將它提供給ngRepeat
之前,按照你喜歡的順序排序。你可以用toArrayFilter這樣的過濾器來做到這一點,或者自己實現一個$ watch對象。
無論如何,你可以嘗試實現你自己的過濾器,但它會很醜,需要很多努力(可能沒有)。
希望它能幫助你!
我嘗試過toArrayFilter,因爲我的對象值不是對象,所以我需要在ng-repeat中添加「toArray:false」,但它通過一個錯誤「TypeError:Object.values不是函數」thttp://plnkr.co/edit/atENz4yKb8e6wrgioy3g?p =預覽 – Garry
正確。在這個例子中它有一個老版本的js.file。如果您查看[當前版本的toArrayFilter](https://github.com/petebacondarwin/angular-toArrayFilter/blob/master/toArrayFilter.js)並嘗試使用它,它會起作用[Plunker](http: //plnkr.co/edit/HVnIQGH21JkxJqSCDzLs?p=preview) – MaKCbIMKo
[如何在AngularJs中使用ng-repeat過濾(key,value)]可能的副本](http://stackoverflow.com/questions/14788652/how-to-filter-key-value-with-ng- repeat-in-angularjs) – isherwood
@isherwood這是不重複的,他們有對象的對象,但我有一個普通的簡單對象 – Garry