我知道在angularJS中有一些内置的过滤器:例如<li ng-repeat="student in students | orderBy:'name'">
但是我不想使用它,我想构建一个像上面的自定义过滤器。
我尝试过以下一项,但我没有怎么做。
您有这样的例子吗?
var app = angular.module("app", []);
app.filter('filterByName', function () {
return function (item) {
// do something there
};
});
任何人都知道怎么做或类似的例子吗?
答案 0 :(得分:0)
使用Array.sort。请参考下面的示例
var app = angular.module('so', []);
app.controller('MyCtrl', function($scope) {
$scope.students = [{'name': 'student'}, {'name': 'john'}, {'name': 'austin'}, {'name': 'doe'}];
});
app.filter('filterByName', function () {
return function (item) {
return item.sort((a,b) => a.name.localeCompare(b.name))
};
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.3/angular.min.js"></script>
<div ng-app="so">
<div ng-controller="MyCtrl">
<li ng-repeat="student in students | filterByName track by $index">{{student.name}}</li>
</div>
</div>