1

新しいディレクティブを定義するとき、リンク機能の重要なポイントはありますか?通常、ディレクティブにはコントローラークラスが定義されており、このクラスは$scopeと$elementを使用して注入できます。したがって、すべてのウォッチャーと(クリック)ハンドラーをそのコントローラーコンストラクター関数に入れることができます。

はい、リンク関数に送信される特定のパラメーター(つまり、attrs、必要なコントローラー)があることは知っていますが、「標準」のものには必要があるのではないかと思いました。

Liorの考えに感謝します

4

1 に答える 1

4

ディレクティブコントローラーを使用するポイントは、他のディレクティブがそのコントローラーを要求してユーザーと対話できることです。すべてをリンク関数で実行すると、他のディレクティブはそのように相互作用できなくなります。ほとんどのディレクティブはコントローラーを必要としませんが、それは時々非常に便利であり、その良い例はngModelControllerです。詳細については、http://docs.angularjs.org/#! / api / ng.directive:ngModel.NgModelControllerをご覧ください。

したがって、必要がない場合は、すべてをディレクティブコントローラに入れるだけではいけません。ディレクティブの要点は、それをコントローラーまたはコンパイル関数に配置する必要があることを(そしてその理由を)知らない限り、リンク関数に入れる必要があります。

于 2013-02-23T07:33:53.843 に答える