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おそらく、フィルター保持モジュールの名前を、より意味のあるもの、またはsthのようなものに変更したいと思うでしょう。

于 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(関数 () {

});

この角度ディレクティブで使用: https://github.com/rolandocc/lov-angular-directive

于 2014-05-16T20:43:49.317 に答える