参考
https://docs.angularjs.org/api/ng/filter/filter
http://blog.51yip.com/jsjquery/1592.html
http://blog.thoughtram.io/angularjs/2014/11/19/exploring-angular-1.3-stateful-filters.html
angular 提供了$filter 服务,基本作用是做数据转换格式.
比如转换日期format,小数点,货币等.
<div ng-controller="ctrl"> {{ name | myfilter1 : email : 'para2' | myfilter2 }} </div>
使用方式是这样一个表达式 ,可以连环过滤一个值, 参数和值也可以是$scope的属性
angular.module("Main", dependentModuleList). filter("myfilter", ["$service",function ($service) { var filter = function (value, para1, para2) { var newValue = value + para1 + para2 return newValue; } filter.$stateful = true; //这个是1.3以后才有的属性,default是false. 它的用处是为了优化,false表示只有当value改变的时候filter才会被执行,true 就是每一次digest都会执行. return filter; }]);
通过 model.filter注册 , 第2参数是数组,这里可以依赖注入 , 一定要返回一个函数 , 函数的参数第1个是要转换的值,其它的就是普通传入的参数,最后返回一个新的值就可以了
controller("ctrl", ["$scope", "$filter", function ($scope, $filter) { var newValue = $filter('myfilter')("value", "para1", "para2"); }]);
除了写在模板内,我们也可以用普通的javascript 通过注入service $filter 来调用我们的过滤器 .
新闻热点
疑难解答