4

多くのカスタム ディレクティブを使用して Web アプリを作成しています。モジュールごとに登録されているすべてのディレクティブを表示する方法はありますか?

4

1 に答える 1

9

モジュールには、モジュールの内容を含む _invokeQueue があります。このような関数:

function Directives(module) {
    var directives = [];
    var invokes = angular.module(module)._invokeQueue;
    for (var i in invokes) {
        if (invokes[i][1] === "directive") directives.push(invokes[i][2]);
    }
    return directives;
}

モジュールを実行し、ディレクティブとしてタグ付けされた呼び出しキュー内の各要素を取得します。

これは、それで遊ぶことができるフィドルです。

編集:どのケースが必要なのかわからないため、これをもう少し一般的にしました。

モジュールには他のモジュールを含めることができるため、サブモジュールにあるディレクティブを再帰的に収集できます。http://jsfiddle.net/V7BUw/2/ .

主な違いは、requires 配列内のすべてのモジュールに対しても繰り返す必要があることです。

for (var j in module.requires) {
    Directives(module.requires[j], directives);
}

お役に立てれば!

于 2014-03-07T19:19:30.347 に答える