如何按数字和字符排序

时间:2018-03-08 05:26:10

标签: javascript html angularjs angularjs-orderby

PLUNKER

我有一个ng-repeat,在下拉列表中有以下值。

Up to 6 months
From 13 to 24 months
Higher than 24 months
From 6 to 12 months

我需要对值进行排序,如下所示

//following is the expected output
// Up to 6 months
//From 6 to 12 months
//From 13 to 24 months
//Higher than 24 months




$scope.items = [{name: 'Up to 6 months', id: 30 },{ name: 'From 13 to 24 months', id: 27 },{ name: 'Higher than 24 months', id: 50 },{ name: 'From 6 to 12 months', id: 50 }];

2 个答案:

答案 0 :(得分:1)

您的名称字段不是格式化的文本,您无法按名称排序,添加一个字段,如下所示,将填充带有排序条件的字段值。这里给出了一个示例排序函数: $ scope.items.sort( function(a,b){ //根据您的标准更改逻辑 返回(/ *你的标准* /)? 1:0); } ); 您的数据将如下所示: $ scope.items = [{name:'最多6个月',排序:0,id:30},{name:'从13到24个月',排序:1,id:27},{name:'Higher超过24个月',排序:3,身份证:50},{姓名:'从6到12个月',排序:4,身份证:50}]; 使用以下内容: < div ng-repeat =“项目中的项目| orderBy:['sort','id']”> {{item.name}} - {{item.id}}< / div>

答案 1 :(得分:0)

您的商品将按此加载

 $scope.selectedItem = { name: 'two', id: 27 };
 $scope.items = [{name: 'Up to 6 months',sort:1, id: 30 },{ name: 'From 13 to 24 months',sort:3, id: 27 },{ name: 'Higher than 24 months',sort:4, id: 50 },{ name: 'From 6 to 12 months', sort:2, id: 50 }];

纳克重复

<select ng-model="selectedItem">
   <option ng-repeat="item in items  | orderBy:['sort']" value={{item.id}}>
    {{item.name}}
   </option>
</select>