自定filter功能
1,filters.js添加一个module
angular.module('mytest', []).filter('myreplace', function() {
return function(input) {
return input.replace(/my/, "=====")
};
});
2,app.js中加载这个module
var phonecatApp = angular.module('phonecatApp', [
'ngRoute',
'mytest'
]);
3,html中调用
{{ "my ng ang" | lowercase | myreplace}} //结果:===== ng ang
注意:| lowercase | myreplace管道命令可以有多个
filter的使用方法
1. 在模板中使用filter
直接在{{}}中使用filter,跟在表达式后面用 | 分割,语法如下:
{{ expression | filter }}
多个filter连用,上一个filter的输出将作为下一个filter的输入
{{ expression | filter1 | filter2 | ... }}
filter可以接收参数,参数用 : 进行分割,如下:
{{ expression | filter:argument1:argument2:... }}
除了对{{}}中的数据进行格式化,我们还可以在指令中使用filter,例如先对数组array进行过滤处理,然后再循环输出:
<span ng-repeat=
"a in array | filter "
>
2. 在controller和service中使用filter
依赖注入
app.controller('testC',function($scope,currencyFilter){
$scope.num = currencyFilter(123534);
}
ng提供了一个$filter服务可以来调用所需的filter,在controller中使用多个filter,只需注入一个$filter,
app.controller('testC',function($scope,$filter){
$scope.num = $filter('currency')(123534);
$scope.date = $filter('date')(new Date());
}