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

    xiaoxiao2023-09-12  174

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

    2.7 过滤器

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

    angular.module('com.ngnice.app').filter('myFilter', function(/* 这里可以用参数进行依赖注入 */) { return function(input) { var result; // TODO: 把input变换成result return result; }; });

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

    return function(input, arg1, arg2, arg3) { ... };

    而使用者则通过{{1|myFilter:2:3:4}}的形式调用它。这种情况下,arg1的值为2,arg2的值为3,arg3的值为4。从使用者的角度,我们可以把filter看做一个函数,它负责接收输入,然后转换成输出。每当输入参数发生变化时,它就被执行,其输出会被视图使用。filter除了可以用在绑定表达式之外,还可以用在指令中通过值绑定的属性,如

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