版本 v 1.6.10
内置
1. currency (货币处理)
- 参数缺省:默认为美元符号
$
- 保留两位小数,没有则用0表示,末位四舍五入
numberObj|currency[:'¥']
{{12.348|currency:'¥'}}
2. date(日期格式化)
- 参数缺省:月份单词简写 日期, 年份
Apr 25, 2018
- 可穿插字符串
- 年份(
yyyy
/yy
)、月份(MM
)、日期(dd
) - 星期(
EEEE
/ EEE
),返回星期单词,EEE
单词简写形式 Apr
- 时(
hh
)、分(mm
)、秒(ss
)
dateObj|date[yyyy[MM[dd[hh[mm[ss[EEEE]]]]]]]
var now = new Date();
new now|date:'公元 yyyy-MM-dd EEE 中国标准时间 hh:mm:ss'
3. filter (匹配子串)
- 用来处理一个数组,然后可以过滤出含有某个子串 的元素,作为一个子数组来返回
- 可以是字符串数组或对象数组
arrObj|filter[:'string'][:{key:value}
var strArr = ['jack', 'tom', 'hannah'];
var objArr = [
{name: 'hannah', age: 18},
{name: 'jack', age: 15},
{name: 'tom', age: 15}
];
strArr|filter:'a'
objArr|filter:{age:16}
4. json(格式化JSON对象)
- 可以把一个 js 对象格式化为 json 字符串,与 JSON.stringify() 一样
jsonObj|json
5. limitTo(限制数组、字符串长度)
- 用来截取数组或字符串,
- 接收一个参数用来指定截取的长度,如果参数是负值,则从数组尾部开始截取,继续返回新的数组
strObj|limitTo[:number]
arrObj|limitTo[:number]
str = 'hello Angular';
str|limitTo:5
str|limitTo:-7
arr = ['jack', 'tom', 'hannah'];
arr|limitTo:1
arr|limitTo:-1
arr|limitTo:-2
6. lowercase(小写)
strObj|lowercase
str = 'Hello Angular';
str|lowercase
7. upper(大写)
strObj|uppercase
str = 'Hello Angular'
str|uppercase
8. number(格式化数字)
- 参数缺省:默认保留三位小数,进行四舍五入
- 如果有传参指定保留几位,就保留几位,不足的话用0表示
numObj|number[:number]
var num = 12.3456789;
num|number:4
9. orderBy(排序)
- 将一个数组中的元素进行排序,默认已 ASCII 码排序
- [:rule] 字符串,表示以该属性名称进行排序; 函数,定义排序属性;数组,表示依次按数组中的属性值进行排序
- [:boolean] 表示排序方向,默认false,true 为反序
arrObj|orderBy[:rule[:boolean]]
var strArr = ['jack', 'tom', 'hannah'];
var objArr = [
{name: 'hannah', age: 18},
{name: 'jack', age: 15},
{name: 'tom', age: 15}
];
strArr|orderBy
strArr|orderBy:'':true
objArr|orderBy:'name';
objArr|orderBy:'name':true;
自定义过滤器
<html ng-app="App">
<body ng-controller="Test">
<h1>{{userName|welcome}}</h1>
</body>
.filter('filterName',callback)
var app = angular.module('App', []);
app.cantroller('Test', ['$scope', function($scope) {
$scope.userName= 'hannah';
}])
app.filter('welcome', function(){
return function(name){
return 'Hello ' + name;
}
})
app.config(['$filterProvider',function($filterProvider){
$filterProvider.register('welcome',function(){
return function(name){
return 'Hello ' + name;
}
}
}])
控制器(controller)中使用过滤器
var app = angular.module("App", []);
app.controller('demoCtrl', ['$filter', function($filter){
var now = new Data();
var format = 'yyyy-MM-dd hh:mm:ss';
var date = $filter('date');
console.log(data(now, format));
console.log($filter('date')(now, format));
}])