AngularJs提供了自定义过滤器的方法,如果现有的过滤器不能完全支持业务需求,那我们可以通过扩展的方法来实现:
比如我要把一个手机号的后3位数字变成【*】星号,代码如下:
04 | <meta charset= "UTF-8" > |
06 | <style type = "text/css" > |
07 | .ng-cloak{display:none;} |
08 | td{height:30px;line-height:30px;padding:0px 10px;text-align:center;} |
11 | <body ng-app= "app" ng-controller= "ctrl" ng-cloak class= "ng-cloak" > |
12 | <table cellpadding= "0" cellspacing= "0" border= "1" > |
22 | < tr ng-repeat= "v in data" > |
26 | <td>{{ v .mobile|truncate:6}}</td> |
32 | <script type = "text/javascript" src= "../js/angular.min.js" ></script> |
33 | <script type = "text/javascript" > |
34 | var m = angular.module( 'app' , []); |
35 | m.controller( 'ctrl' , [ '$scope' , function ($scope){ |
37 | {user: '张三' , age:23, sex: '男' , mobile:13126919232}, |
38 | {user: '李四' , age:26, sex: '女' , mobile:15024407449}, |
39 | {user: '王五' , age:24, sex: '男' , mobile:13293609908} |
43 | m.filter( 'truncate' , function (){ |
44 | return function (mobile, len){ |
45 | var len = len ? len : 3; |
46 | return String(mobile).substr(0, 11-len)+new String( '*' ).repeat(len); |
|
自定义filter过滤器,第一个参数是过滤器名称,第二个是回调函数,return返回结果。
返回结果函数中,第一个参数是要处理的数据,第二个参数是过滤器指定的参数。