这篇文章主要介绍了使用AngularJS创建自定义的过滤器的方法,AngularJS是非常热门的JavaScript库,需要的朋友可以参考下
Angularjs过滤器是 angularjs非常棒的特性之一。有朝一日,你可能需要使用自定义过滤器,幸运的是,你找到了这篇博文。
下面显示的是自定义过滤器长什么样子(请注意myfilter):
我们的自定义过滤器叫做 "myfilter", 它有由 ':'隔开的4个参数.
这是一个将会用到的样本输入:
?
1 2 3 4 5 6 |
$scope.friends = [{name:'John', phone:'555-1276'}, |
过滤器只显示电话号码中含有 "555"的项,这是样本输出:
?
1 2 3 4 5 6 |
Name Phone |
过滤"555"的处理流程由 "windowScopedFilter"执行, 它是过滤器 'myfilter'的第四个参数.
下面我们来实现这些功能 (把logging添加到每个输入参数):
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
var myapp = angular.module('MyFilterApp', []); |
上面的代码大多都log了(译者注:将信息显示到控制台). 实际完成过滤的最重要的一部分是:
?
1 2 3 4 5 |
// filter |
"return window[args[4]](input)" 调用第四个参数, 它是 'windowScopedFilter'.
这是控制台输出:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
"------------------------------------------------- begin dump of custom parameters" custom_filter_function.html:21 |
完整代码:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
<html> |