5

这似乎应该很容易,但我找不到关于它的文档。我想知道如何使 Angular 组件(比如说过滤器)在不同的应用程序中可重用。我制作了一个简单的过滤器来格式化电话号码,我希望能够在任何应用程序中使用它。目前它是这样声明的:

var myModule = angular.module('myModule', ['ngSanitize']);

myModule.filter('formatFilter', function() {
  return function(input) {
    return input.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3");
  }
});

问题是如何使这个过滤器可重用。现在它只是附加到“myModule”,但我怎样才能把它从这个文件中取出,以便我也可以在其他地方重用它呢?

4

2 回答 2

7

您通过将过滤器封装在一个单独的模块中来开始 OK。对于其他应用程序使用它,这些应用程序只需要包含过滤器的源代码并声明对模块的依赖:

angular.module('myApp',['myModule'])

您可能希望将您的过滤器保持模块重命名为更有意义的名称,例如phoneFormatter或某事。

于 2013-02-04T21:28:48.730 回答
2

举个例子:

这是一个声明为模块的可重用过滤器,因此只需要在应用程序上注入:

筛选:

angular.module("lov-filter", []).filter('StartOnPage', function () {
    return function (input, start) {
        start = +start;
        return input.slice(start);
    }
});

应用程序:

var demoApp = angular.module('demoApp', ['lov-filter']) .config(function () {

});

用于此角度指令:https ://github.com/rolandocc/lov-angular-directive

于 2014-05-16T20:43:49.317 回答