15

Angular はディレクティブを作成するメカニズムを提供します。これは非常に強力な機能です。しかし、私が疑問に思っていることは、どのシナリオで実際に独自のカスタム ディレクティブを作成する必要があるかということです。

スタック オーバーフロー内やその周辺で、(私の意見では) そもそも書く必要のないディレクティブを書こうとしているさまざまな人々からの質問を目にし続けています。ほとんどの場合、repeat、switch、show の組み合わせで解決できます。そもそもディレクティブであってはならないと私が思うディレクティブを含む質問の例を見てください!

https://stackoverflow.com/questions/16101073/angularjs-directive-is-not-working-in-ie-10

AngularJS での発射ボタンのクリック

angularjs: ui-bootstrap モーダル内でディレクティブを使用する

いくつかのシナリオの例。とにかく、私はそれらを選んでいません..なぜなら、いつディレクティブを使用/作成する必要があるかは誰にも明らかではないからです。

テンプレートのメカニズムとしてディレクティブを使用するシナリオが見られます。これは物事を行う正しい方法ですか?それとももっと良い方法がありますか?(おそらく ng-include?) テンプレート メカニズムとしてディレクティブを使用することの利点/欠点はありますか? この質問の理由は、jquery の世界から来た人々が最初に考えることができるのは DOM 操作コードを書くことであり、Angular の方法はコントローラーで DOM を操作しないことであるため、ディレクティブを書くのではないかと時々思うからです。ディレクティブ内のすべてのコード。

編集 :

この混乱 (ディレクティブ内に物事を押し込むこと) は、Angular が「ビュー」という別個の概念を持たないために発生すると考えています。ディレクティブは、コンポーネントを定義するのに優れています。しかし、ディレクティブを使用して「ビュー」を作成すると、「角度のある」方法の一部が失われると思います。ただし、これは私の意見です。そのため、Angular コミュニティの残りの意見を求めています。

単純なディレクティブ (1 つのことだけを行うディレクティブ!) の良いところは、テストが非常に簡単なことです。すべての ng ディレクティブを見ると、それらはすべて 1 つのことを行い、そのことをかなりうまく行っています。

Angular で再利用可能な「ビュー」(コンポーネントではありません!) を定義する最良の方法は何ですか? それは指令書に書くべきですか?それとももっと良い方法がありますか?

Angular Dev の 1 人がこの問題について意見を持っているとしたら、それは素晴らしいことです!

4

2 に答える 2