繁体   English   中英

ng-options orderBy键值对中的值

[英]ng-options orderBy value in key value pairs

我不能为了一个键值对相对于value 按字母顺序排列

我正在使用的示例是

"week_days_short":[
    {"key":"1","value":"Mon"},
    {"key":"2","value":"Tue"},
    {"key":"4","value":"Thu"},
    {"key":"3","value":"Wed"},
    {"key":"5","value":"Fri"},
    {"key":"6","value":"Sat"},
    {"key":"7","value":"Sun"}
]

我使用了以下代码,

ng-options="key as value for (key, value) in 
            properties.week_days_short | 
            orderBy:'value' track by value"

但是排序没有发生。 有什么建议么?

 angular.module("app",[]) .controller("ctrl", function($scope) { $scope.properties = { "week_days_short":[ {"key":"1","value":"Mon"}, {"key":"2","value":"Tue"}, {"key":"4","value":"Thu"}, {"key":"3","value":"Wed"}, {"key":"5","value":"Fri"}, {"key":"6","value":"Sat"}, {"key":"7","value":"Sun"} ]}; }) 
  <script src="//unpkg.com/angular/angular.js"></script> <body ng-app="app" ng-controller="ctrl"> selection={{selection}}<br> Select with Alphabetical Order<br> <select ng-model="selection" ng-options="item.key as item.value for item in properties.week_days_short | orderBy:'value' track by item.value"> <option value="">Select day</option> </select> </body> 

PLNKR上演示

有关更多信息,请参见

由于HTML中的orderBy无法在Object上运行,因此week_days_short是数组。 因此,按控制器排序解决了我的问题。

Object.values($scope.properties.week_days_short).sort()

我认为它可以帮助您。

ng-options="key as value.sort((a, b) => a.key.localeCompare(b.key)) for (key, value) in 
        properties.week_days_short | 
        orderBy:'value' track by value"

这是参考: 在ES6 / ES2015或更高版本中,您可以这样做

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM