使用orderBy对字母数字数据进行排序

时间:2016-09-26 08:23:47

标签: html angularjs sorting

我尝试使用ng-optionsorderBy数据进行排序,我的数据包含字母和字符串&#39}。我能够解决这个["A10","B2","C1"]类型的数据,我在这里询问如何对此["1","2","10","a","b","C"]种数据进行排序?是否有可能做到这一点 ! 。在许多网站上搜索过,但没有得到任何想法,所以有人帮助我或澄清我。 这是我的工作代码,

ng-options="option.id as option.roomno for option in MyData 
   | unique:'roomno' | orderBy:'roomno' "

2 个答案:

答案 0 :(得分:1)

这可能会对您有所帮助Jsfiddle

我已更新您的代码,但发现您需要将给定数组转换为json数组,以便在ng-options中可以对其进行排序。

并且你需要使用第三方库。

<div ng-app="myApp">
<div ng-controller="ctrl">
<select ng-options="item.name as item.name for item in data | orderBy: 'name' " ng-model="test">
{{item.name}}
</select>
</div> 
</div>

JS

var app = angular.module('myApp', []);
app.controller('ctrl',function($scope){
$scope.data = [
{name:'abc'},
{name:'test'},
{name:'xyz'}
];
// this will not work 
//$scope.data = ["1","2","10","a","b","C"];
});

答案 1 :(得分:0)

您可以运行自定义orderBy功能:

ng-options="option.id as option.roomno for option in MyData 
   | unique:'roomno' | orderBy: orderAlphanumeric "

//Controller
$scope.orderAlphanumeric = function(item) {
  // do some data wrangling
  return something;
}
相关问题