一、AngularJS 过滤器是什么?
过滤器,顾名思义是对一个数据,或数据组进行的筛选过滤,或按规则进行的逐一修改,比如过滤字符串,将字符串统一改成大写或小写;或是在查询部分数据时,根据过滤器条件,将数据查询范围缩小;
过滤器可以通过一个管道字符(|)和一个过滤器添加到表达式中,如:{{name | uppercase}},“uppercase”是过滤条件表达式,即将“name”中字符过滤,输出所有字符大写;
AngularJS 过滤器可用于转换数据:
过滤器 描述
currency 格式化数字为货币格式。
filter 从数组项中选择一个子集。
lowercase 格式化字符串为小写。
orderBy 根据某个表达式排列数组。
uppercase 格式化字符串为大写。
二、过滤器示例:
1、表达式中添加过滤器
<div ng-app="myApp" ng-controller="personCtrl">
<p>姓名为 {{ lastName | uppercase }}</p>
</div>
2、向指令添加过滤器
orderBy 过滤器根据表达式排列数组:
<div ng-app="myApp" ng-controller="namesCtrl">
<ul>
//orderBy指按数组中“county”来排序
<li ng-repeat="x in names | orderBy:'country'">
{{ x.name + ', ' + x.country }}
</li>
</ul>
</div>
3、过滤输入
filter 过滤器从数组中选择一个子集
<div ng-app="myApp" ng-controller="namesCtrl">
<p><input type="text" ng-model="test"></p>
<ul>
<li ng-repeat="x in names | filter:test | orderBy:'country'">
{{ (x.name | uppercase) + ', ' + x.country }}
</li>
</ul>
</div>
表达式中将x.name以大写输出,并以“country”数据进行排序,输入框中所输入的数据,作为一个【筛选条件】,表达式中选显示的数据,将在符合【筛选条件】的前提下,进行格式化输出;
4、自定义过滤器
以下实例自定义一个过滤器 reverse,将字符串反转:
<p>{{ msg | reverse }}</p>
var app = angular.module('myApp', []);
app.controller('myCtrl', function(scope.msg = "Runoob";
});
app.filter('reverse', function() { //可以注入依赖
return function(text) {
return text.split("").reverse().join("");
}
});
输出结果:boonuR
app.fliter声明了并实现了一个过滤器,过滤器的方法是将text文本反转,这应该是所有过滤器的原理。
网友评论