创建实际排序的AngularJS自定义过滤器 [英] Creating AngularJS custom filter that actually Sort

查看:73
本文介绍了创建实际排序的AngularJS自定义过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道在angularJS中有一些内置的过滤器:例如< li ng-repeat =学生的学生| orderBy:'name'">

I know that in angularJS there is some built in filter: for example <li ng-repeat="student in students | orderBy:'name'">

但是我不想使用它,我想构建一个自定义过滤器,就像上面的一样.

But I don't want to use it, I want to build a custom filter like above one.

我尝试了以下一项,但是我没有怎么做.

and I tried below one but I am not getting how to do it.

您有这样的例子吗?

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


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

任何人都知道该怎么做或类似的例子吗?

Anyone know how to do it or any example like this?

推荐答案

使用

Use Array.sort. Refer to the example below

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>

这篇关于创建实际排序的AngularJS自定义过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆