(9)AngularJS 1.X 之自定义过滤器
2017-02-07 19:50
162 查看
引言
自定义过滤器
1 自定义没有属性的过滤器
2 自定义有属性的过滤器
3 自定义过滤器中使用服务
过滤器的名称
过滤器要处理的数据(也就是过滤器的输入值)
过滤器所需要的属性(属性是可选的)
通过上面的分析,我们可以知道一个过滤器分为三个部分,属性是可选的,过滤器的名称是必须的,过滤器所处理的数据也是必须的,现在我们就自定义两个过滤器。
引入
创建自定义的过滤器(
在表达式中使用我们自定义的过滤器
引入
创建自定义的过滤器(
在表达式中使用我们的过滤器
创建过滤器
使用我们的表达式
自定义过滤器
1 自定义没有属性的过滤器
2 自定义有属性的过滤器
3 自定义过滤器中使用服务
1.引言
在上一篇博客中我们说了9个AngularJS提供的过滤器,在真实开发环境中
AngularJS提供的9中过滤器远远不能满足我们的需求,在很多的时候我们需要自定义我们自己的过滤器,在本篇博客中我们就介绍一下如何创建我们自己的过滤器,然后如何在表达式中创建自己的过滤器,如何在过滤器服务中使用自己的过滤器。
2.自定义过滤器
在自定义过滤器之前,我们先看看一个AngularJS提供的过滤器都有哪几部分组成,我们看
{{ orderBy_expression | orderBy : expression : reverse}},分析这个过滤器大致可以分为三部分:
过滤器的名称
过滤器要处理的数据(也就是过滤器的输入值)
过滤器所需要的属性(属性是可选的)
通过上面的分析,我们可以知道一个过滤器分为三个部分,属性是可选的,过滤器的名称是必须的,过滤器所处理的数据也是必须的,现在我们就自定义两个过滤器。
2.1 自定义没有属性的过滤器
我们创建一个过滤器,所实现的功能:将hello js替换成
hello javascript,过滤器的名称为
myFilter。
引入
AngularJS函数库(略)
创建自定义的过滤器(
myFilter)
//创建了一个过滤器 var app=angular.module("myApp",[]); app.filter('myFilter',function(){ return function(input){ //input为我们表达式的输出值,也就是hello js //这个函数的返回值就是过滤器的返回值 return input.replace(/js/, "javascript"); } });
在表达式中使用我们自定义的过滤器
{{"hello js"|myFilter}}//输出结果为hello javascript
2.2 自定义有属性的过滤器
我们创建一个过滤器:过滤器的名称为myFilter,过滤器可以填写一个属性,这个属性是
boollen类型,如果是
true,那么将
hello js替换成
hello javascript,如果
false,那么将
hello js替换成
hello JAVASCRIPT,接下来我们实现这个过滤器。
引入
AngularJS函数库(略)
创建自定义的过滤器(
myFilter)
var app=angular.module("myApp",[]); app.filter('myFilter',function(){ return function(input,attr){ //input为我们表达式的输出值,也就是hello js //attr是我们输入的属性值,如果可以输入两个属性,那么在函数中继续添加属性 //这个函数的返回值就是过滤器的返回值 if(attr){ return input.replace(/js/, "javascript"); }else{ return input.replace(/js/, "JAVASCRIPT"); } } });
在表达式中使用我们的过滤器
{{"hello js"|myFilter:true}}//输出结果为:hello javascript {{"hello js"|myFilter:false}}//输出结果为:hello JAVASCRIPT
2.3 自定义过滤器中使用服务
在创建我们的过滤器时,我们可以将服务注入进去,只要有供应商的服务都可以注入到过滤器方法中,现在我们就在自定义过滤器中使用服务,现在我们自定义一个自己的过滤器,实现的功能为:将字符串转换为大写:创建过滤器
var app=angular.module("myApp",[]); app.filter('myLowercase',function($filter){ return function(input){ //input为我们表达式的输出值,也就是hello js //$filter就是注入进来的过滤器服务 return $filter("lowercase")(input); } });
使用我们的表达式
{{"HELLO JS"|myLowercase}}//运行结果为:hello js
相关文章推荐
- 如何在angularjs的自定义指令内部定义自定义过滤器?
- AngularJS -自定义过滤器
- AngularJs自定义过滤器
- AngularJs自定义过滤器的方法
- 关于angularjs 中自定义过滤器
- AngularJs中组件、过滤器、自定义过滤器的使用
- angularJS---自定义过滤器
- angularjs 依赖压缩以及自定义过滤器写法
- angularJs-----$filter过滤器使用 自定义过滤器
- 使用AngularJS创建自定义的过滤器的方法
- angularJS过滤器+自定义
- angularJS---自定义过滤器
- AngularJS自定义过滤器
- AngularJs自定义过滤器filter
- AngularJs学习之一使用自定义的过滤器
- angularJs自定义过滤器实现手机号信息隐藏
- 【AngularJS】—— 9 自定义过滤器
- 《AngularJs》$filter 自定义过滤器
- Angularjs学习笔记——AngularJS中$filter过滤器使用(自定义过滤器)
- angularJS 自定义过滤器