如何在angularjs中为不同的模块创建全局过滤器

时间:2017-03-22 09:42:32

标签: angularjs

我有Module1和Module2。我需要为两个模块编写通用过滤器。那么如何创建全局过滤器,以便在两个模块中使用。请在下面找到示例代码

    //module One with Filter
var Module1 = angular.module("Module1App", []);
Module1.filter('makeUppercase', function () {
    return function (item) {
        return item.toUpperCase();
    };
});

//Module two with filter
var Module2 = angular.module("Module2App", []);
Module2.filter('makeUppercase', function () {
    return function (item) {
        return item.toUpperCase();
    };
});

2 个答案:

答案 0 :(得分:1)

只需创建第三个全局模块,您可以在其中定义过滤器:

angular
    .module("GlobalModule", [])
    .filter('makeUppercase', function () {
        return function (item) {
            return item.toUpperCase();
        };
    });

然后在其他2个模块中使用它。为此,请注入GlobalModule并在需要时使用其过滤器:

angular.module("Module1App", ["GlobalModule"]);
angular.module("Module2App", ["GlobalModule"]);

答案 1 :(得分:0)

你可以创建一个包含过滤器并将该模块注入app模块的全局模块

var global= angular.module("globalModule", []);
global.filter('makeUppercase', function () {
    return function (item) {
        return item.toUpperCase();
    };
});

将全局模块注入app模块

var Module1 = angular.module("Module1App", ["globalModule"]);

//Module two with filter
var Module2 = angular.module("Module2App", ["globalModule"]);