0

AngularJS でディレクティブを定義するとき、ステートメントのに何を入れることができるでしょうか?return

angular.module('app').directive('myDir', function() {
    // What can you do here?
    return {
        restrict: 'E',
        link: function(scope, element) {
            // do things
        }
    };
});

したがって、いくつかの一般的な質問は次のとおりです。

1.そこで何ができますか?
2. そこでしかできないことは?
3.そこでしてはいけないことは何ですか?


私が便利だと思ったことの 1 つは、そこに変数または関数を格納して、ディレクティブの定義で使用できることですが、他の提案を聞きたいです。

4

1 に答える 1

0

まあ、誰もまだ答えていないので...コメントで述べたように、ディレクティブを理解するwikiページにはいくつかの有用な情報があります。

ディレクティブが初めて検出されると、Angular はディレクティブ関数を 1 回実行します。したがって、ここに入力したものは 1 回だけ実行されます (ディレクティブがアプリのどこにも使用されていない場合は、0 回実行される可能性があります)。したがって、すべてのディレクティブ インスタンス間で何かを共有できる場合は、ここに配置できます: 関数、ディレクティブ-グローバル変数、1 回限りの初期化など。

ここに配置する機能はかなり制限されることに注意してください。引数として渡さない限り、スコープ、要素、または属性にアクセスすることはできません。そのため、コンパイルまたはリンク関数で使用される関数は、多くの場合、コンパイルまたはリンク関数内に配置されます。これは、JavaScript クロージャーによりスコープ、要素、および属性にアクセスできるためです。ディレクティブページの 2 つのディレクティブの例はこれを行います。

于 2013-03-20T14:44:01.843 に答える