1

ブートストラップのようなドキュメント ページの一部として使用されている別のディレクティブの例を示すディレクティブを作成しました。次に例を示します。

<an-example>
  <input ng-model="name" an-spellcheck />
</an-example>

内部に配置されているマークアップをコピーし、それをタグに入れて<code>、ディレクティブを使用するために必要なマークアップを表示したいと考えています。

ただしng-model、クラスを入力に追加して、次のようにします。

<input class="ng-scope ng-pristine" ng-model="name" an-spellcheck />

代わりに、exampleディレクティブは以下をキャプチャする必要があります。

<input ng-model="name" an-spellcheck />

ただし、内部ディレクティブが実行される前に、トランスクルージョンされたコンテンツにアクセスできないようです。これは、問題を示すプランカーです。

、、および関数ではcontroller、入力には既に からの css クラスがあります。preLinkpostLinkng-model

exampleangular が子ディレクティブをコンパイルする前に、ディレクティブの内容にアクセスする方法はありますか?

4

1 に答える 1

0

ngTransclude の優先度が 0 であるのに対し、ngModel の優先度は 1 であるため、これは不可能です (コンパイルの順序は番号の大きいものから小さいものへ)。したがって、ngModel は常に最初にコンパイルされます。ngModel の前にコンパイルするためにディレクティブの優先順位を変更することは可能ですが、transclude は後で適用されます。

ngModel の優先度: https://docs.angularjs.org/api/ng/directive/ngModel

ngTransclude の優先度: https://docs.angularjs.org/api/ng/directive/ngTransclude

于 2014-11-04T21:06:36.523 に答える