使用辅助函数AngularJS注入过滤器

时间:2014-03-14 09:40:18

标签: angularjs angularjs-filter

我有两个过滤器,它们都使用部分代码,它们是相同的,可以作为函数(帮助器)提取。我可以将它放在控制器中,但主要问题是,我不知道如何传递它并使过滤器可见以后使用它。

有解决方案吗? 感谢。

1 个答案:

答案 0 :(得分:1)

只需在角度模块中声明过滤器和服务,如下所示:

angular.module('myModule')
    .service('myFilterService', function () {   
            this.mySharedCode = function () {
                // Put your shared code here
            };
        })
    .filter('myFilter1', function (myFilterService) {
        return function (input, arg) {
            if (typeof input !== 'undefined') {
                // Do your filtering using myFilterService
                myFilterService.mySharedCode(...)
                return myFilteredInput
            } else {
                return myReturnValueIfInputUndefined;
            }
        }
    })
    .filter('myFilter2', function (myFilterService) {
        // Do your filtering using myFilterService like you did with myFilter1
    })

假设示波器上有item可用,您可以使用过滤器

在您的控制器中:

.controller('myController', function ($scope, $filter) {
    var filteredItem = $filter('myFilter')($scope.item, filterArg);
}

在您的模板中:

{{ item | myFilter : filterArg }}