天天看点

《AngularJS深度剖析与最佳实践》一2.7 过滤器

本节书摘来自华章出版社《angularjs深度剖析与最佳实践》一书中的第2章,第2.7节,作者 雪狼 破狼 彭洪伟,更多章节内容可以访问云栖社区“华章计算机”公众号查看

我们在第1章中使用了多个系统内置的过滤器(filter),还写了一个自定义过滤器,这里我们再系统化的从理论层面讲一下。

过滤器标准的定义方式是:

可以看出,过滤器是一个特殊的函数,它返回一个函数,这个函数接收的第一个参数就是被过滤的变量,如使用{{1|myfilter}}时,这个input参数的值就是1,当这个值是个变量时,它的变化会导致myfilter再次被执行。

过滤器还可以接收第二个参数,乃至第n个参数,如:

而使用者则通过{{1|myfilter:2:3:4}}的形式调用它。这种情况下,arg1的值为2,arg2的值为3,arg3的值为4。

从使用者的角度,我们可以把filter看做一个函数,它负责接收输入,然后转换成输出。每当输入参数发生变化时,它就被执行,其输出会被视图使用。

filter除了可以用在绑定表达式之外,还可以用在指令中通过值绑定的属性,如

...。

由于其简单灵巧,filter非常适合复用。官方提供的几个filter就有很多种用法,读者可以参照官方的api文档和实战篇的案例,自行尝试用ng-repeat, filter, orderby的组合来实现具有前端过滤功能的表格,这有助于对过滤器的深入理解。

继续阅读