filter.js剖析

Ionic过滤器集成使用了Angularjs filter过滤器:
过滤器这块分两种来介绍,包括有内置的过滤器和自定义过滤器。

1、内置的global过滤器

1.1)定义:

内置过滤器定义在项目www/lib/ionic/js/angular/angular.js

1.1.1)、filter模块注入:

filter: invokeLaterAndSetModuleName(‘$filterProvider’, ‘register’)

1.2.1)、内置filter种类与注册:

register(‘currency’, currencyFilter);
register(‘date’, dateFilter);
register(‘filter’, filterFilter);
register(‘json’, jsonFilter);
register(‘limitTo’, limitToFilter);
register(‘lowercase’, lowercaseFilter);
register(‘number’, numberFilter);
register(‘orderBy’, orderByFilter);
register(‘uppercase’, uppercaseFilter);

1.2)、用法(分别可以在html和js中使用,主要以html举例):

1.2.1)、currency 数字格式化为货币

使用: {{100 | currency:”RMB ¥ ” }}
结果:RMB ¥ 100.00

1.2.2)、date 时间格式化

使用:{{ 144921017328 date:”yyyy-MM-dd hh:mm:ss” }}
结果:2015-12-04 14:22:53

1.2.3)、filter 查询过滤

使用:{{ [{name:’John’, phone:’555-1276′},
{name:’Mary’, phone:’800-BIG-MARY’},
{name:’Mike’, phone:’555-4321′},
{name:’Adam’, phone:’555-5678′},
{name:’Julie’, phone:’555-8765′},
{name:’Juliette’, phone:’555-5678′}
] | filter:{‘name’:’Mary’} }}
结果:[{name:’Mary’, phone:’800-BIG-MARY’}]

1.2.4)、json格式化

{{ {basketball: “Jordan”} | json }} //结果:{ “basketball”: “Jordan” }

1.2.5)、limitTo 字符串,数组,数字的截取

使用:{{ “ioniconline” | limitTo:5 }}
结果:ionic

1.2.6)、lowercase 全转成小写字母

使用:{{ “IONICONLINE” | lowercase }}
结果:ioniconline

1.2.7)、number 数字格式化

使用:{{ 1.234 | number:2 }}
结果:1.23

1.2.8)、orderBy 排序

使用:{{ [{name:’John’, phone:’555-1212′, age:10},
{name:’Mary’, phone:’555-9876′, age:19},
{name:’Mike’, phone:’555-4321′, age:21},
{name:’Adam’, phone:’555-5678′, age:35},
{name:’Julie’, phone:’555-8765′, age:29}] | orderBy:’age’:false}} //false:升序排

结果:[{name:’John’, phone:’555-1212′, age:10},
{name:’Mary’, phone:’555-9876′, age:19},
{name:’Mike’, phone:’555-4321′, age:21},
{name:’Julie’, phone:’555-8765′, age:29},
{name:’Adam’, phone:’555-5678′, age:35}]

1.2.9)、uppercase 全转成大写字母

使用:{{ “ioniconline” | uppercase }}
结果:IONICONLINE

Note:controller(后续文章将会详解)中也可以使用 filter

$scope.websiteName= $filter(‘uppercase’)(‘ioniconline’);

详细参考:

http://docs.angularjs.cn/api/ng/filter/

2)、自定义filter过滤器(带html标签的内容过滤为例)

2.1)、filters.js这个module中添加一个filter。

语法:.filter(‘name’, function() { });
实例:
angular.module(‘starter.filters’, [‘ionic’])
.filter(‘trust_as_html’, [‘$sce’, function ($sce) {
return function (text) {
return $sce.trustAsHtml(text);
};
}]);

2.2)、载入

根据前面文章介绍,app.js中会依赖注入加载filter这个module
angular.module(‘starter’, [‘ionic’, ‘starter.controllers’, ‘starter.filters’, ‘starter.routes’, ‘starter.services’, ‘starter.directives’])。

2.3)、在template中使用filter

使用方法:通过管道命令调用;
实例:<p ng-bind-html=”info.desp | filter:trust_as_html”></p>
Note:| lowercase |trust_as_html管道命令可以有多个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值