AngularJS,使用非数组模型命令文本选择?

标签 angularjs

我正在使用 ng-options="ref as display for (ref, display) in语法将非数组对象显示为下拉列表,但在排序下拉值时遇到问题。

我应该如何使用orderBy过滤器按 display 对此下拉列表进行排序值?

    <div ng-controller="MyCtrl">
      <select name="category" type="text" ng-model="categories " ng-options="ref as display 
for (ref, display) in categories | orderBy:'display'" >

    </div>

    var myApp = angular.module('myApp',[]);
    function MyCtrl($scope) {
      $scope.categories = {
          cat2: "Category 2",
          default: "anone",
          zone: "zone",
        };
    }

http://jsfiddle.net/ADukg/13412/

最佳答案

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

演示

var myApp = angular.module('myApp',[]);
myApp.controller('myCtrl', function($scope) {
  $scope.categories = {
      cat2: "Category 2",
			default: "anone",
			zone: "zone",
	};
  
   $scope.templatesAry = function() {
      var ary = [];
      angular.forEach($scope.categories, function(val, key)
      {       
        ary.push({
          "category": val          
        });
      });
      return ary;
    };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
   <select class="form-control" id="selection" ng-model="currentSelected" ng-options="selection.category as selection.category for selection in templatesAry()  | orderBy:'category'"></select>
</div>

关于AngularJS,使用非数组模型命令文本选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45310937/

相关文章:

javascript - 为什么来自提供者的事件不 $emit 到 $rootScope?

javascript - 多元素 Angular 的一键点击功能

javascript - Angular 2 独立组件

javascript - 如何使用过滤器显示uniq类别

javascript - 推送到 JavaScript 对象中的数组

angularjs - 带有模板参数属性的 Angular 谷歌地图窗口指令

angularjs - 如何使用angular在 Elasticsearch 中动态设置esFactory主机地址?

javascript - Angular 项目架构

javascript - 如何从 Node 后端的 $http.post/angular 检索 post 变量?

javascript - 在 Angular 应用程序中将页面导出为 pdf