javascript - Angular ng-options,排序对象

标签 javascript angularjs ng-options

我有一个看起来像这样的对象:

{
   3019: 'Javascript',
   3046: 'Css'
}

然后,我在 select 中显示该对象,如下所示:

<select
    ng-model="langChoosed"
    ng-options="key as value for (key, value) in progLanguages"
></select>

我需要对选择中的项目进行排序,但 orderBy 过滤器似乎仅适用于数组,如何使其适用于对象?

最佳答案

NO order by 不能应用于普通对象,或者您可以在 Controller 中定义一个方法将对象转换为数组

演示

var app = angular.module('todoApp', []);

app.controller("dobController", ["$scope",
  function($scope) {
    $scope.progLanguages = {
      3019: 'Javascript',
      3046: 'Css'
    };
    $scope.templatesAry = function() {
      var ary = [];
      angular.forEach($scope.progLanguages, function(val, key) {
        ary.push({
          id: key,
          lang: val
        });
      });
      return ary;
    };
  }

]);
<!DOCTYPE html>
<html ng-app="todoApp">

<head>
  <title>To Do List</title>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script>

</head>


<body ng-controller="dobController">
  <select class="form-control" id="selection" ng-model="currentSelected" ng-options="selection.id as selection.lang for selection in templatesAry()  | orderBy:'lang'"></select>
</body>

</html>

关于javascript - Angular ng-options,排序对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41618713/

相关文章:

javascript - Safari AJAX 错误 - 无法加载资源

c# - IP 地址到数字在 Javascript 和 c#.net 中不同

javascript - Angular 在尝试下载文件时将 "unsafe"添加到 url

angularjs - NG-OPTIONS 中的硬编码值与 NG-REPEAT 中的动态值

javascript - Angular.js : set default selected from ID

javascript - Javascript 中的重复手动幻灯片

javascript - 如何用按钮在不同的div中滑动

javascript - AngularJS。 ng-class 与 $scope 中的变量不同步

javascript - Angular 和 Asp.Net,无法从脚本目录引用 Angular js

javascript - 如何使用 angularJS 从 Controller 更改 <select> 值?