0

コンパイルプロセスとAngularJSDocのディレクティブマッチングをすでに読みました 。

しかし、私は本当に指令を理解していませんでした。

例:

私は静的なhtmlを持っています:

<div class="test test2" cid="549" sid="a5e3c4f8a9">text-text-text</div>

手動で行うと、ブラウザの解析時に1回だけ作成され、呼び出されることがわかります。

しかし、同じdom要素を使用してディレクティブを作成するとどうなりますか?

<x my-directive>text-text-text</x>

これは同じ効果ですか?

私は自分のhtmlページで200以上の要素を使用しているので、そのような初心者の質問をしています。それらを単一のディレクティブに変更すると、確かにそれらの管理がはるかに簡単になります。

ブラウザのコンパイル時に遅いだけでも問題ありませんが、実行時に何が起こったのでしょうか。

質問が十分にプロでない場合は、申し訳ありません。Stackoverflowは初めてです。

ありがとうございました

ダニエル

4

1 に答える 1

3

私の理解が正しければ、AngularJS がディレクティブを作成する方法と、ディレクティブ メソッドが呼び出される回数を知りたがっています。

( を使用して) ディレクティブを作成する場合module.directive('myDirective', ...)、実際には定義を作成しているだけです。そのディレクティブ ( など) を使用するたび<div my-directive>に、AngularJS はガイドに記載されているプロセスを実行します。つまり、使用するたびにコンパイルおよびリンクします。ディレクティブは単独で存在しないため、このようにする必要があります。呼び出された に存在するだけでなく$scope、要素の属性とトランスクルージョンされたコンテンツを利用することもできます。定義は 1 回行われますが、各インスタンスはコンパイルおよびリンクされます。

ディレクティブが作成されると、技術的には完了です。$watchまたは$observeまたは イベント バインディングを設定しない場合、「ディレクティブ」は、link関数の最後にある DOM にあるものになります。これ以上の計算はありません。つまり、コンパイルとリンクの後に何が起こるかは完全にあなた次第です。

例に戻ります。ページで同じディレクティブを 200 個使用すると、ディレクティブは 1 回定義されますが、200 個すべてが個別にコンパイルおよびリンクされます。しかし、あなたが質問することで何を意味しているのか、私にはよくわかりません。あなたの質問の背後にある質問は何ですか?

于 2013-03-13T22:05:25.333 に答える