Создание пользовательского фильтра AngularJS, который на самом деле сортирует - PullRequest
0 голосов
/ 17 мая 2019

Я знаю, что в angularJS есть какой-то встроенный фильтр: например <li ng-repeat="student in students | orderBy:'name'">

Но я не хочу его использовать, я хочу создать собственный фильтр, как показано выше.

и я попробовал ниже одного, но я не понимаю, как это сделать.

У вас есть такой пример?

var app = angular.module("app", []);


app.filter('filterByName', function () {
  return function (item) {
      // do something there
  };
});

Кто-нибудь знает, как это сделать или любой другой пример?

1 Ответ

0 голосов
/ 17 мая 2019

Использование 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...