如何使 orderby 过滤器在字符串数组上工作?

这里是不工作的代码: 演示: http://jsfiddle.net/8dt94/63/

<div ng-controller="MyCtrl">
<input type="text" ng-model="searchText" />
<ul ng-repeat="strVal in arrVal|orderBy|filter:searchText" >
<li>{{strVal}}</li>
</ul>
</div>


var app=angular.module('myApp', []);
app.controller('MyCtrl', function ($scope,$filter) {
$scope.arrVal = ['one','two','three','four','five','six'];
});
55993 次浏览

Write a custom filter:

app.filter('mySort', function() {
return function(input) {
return input.sort();
}
});

HTML:

<ul ng-repeat="strVal in arrVal|filter:searchText|mySort">

Fiddle.

You can order by a method, so you can use the toString method

<ul ng-repeat="strVal in arrVal | orderBy:'toString()' | filter:searchText">