最初に角度ディレクティブをコンパイルして属性を追加し、次にコードを他のディレクティブとして再度コンパイルしたいと考えています。とにかく、これをコンパイルするために compile: pre post または何かを使用する可能性がありますか
親ディレクティブ テンプレートのディレクティブに属性を追加しますか?
最初に角度ディレクティブをコンパイルして属性を追加し、次にコードを他のディレクティブとして再度コンパイルしたいと考えています。とにかく、これをコンパイルするために compile: pre post または何かを使用する可能性がありますか
親ディレクティブ テンプレートのディレクティブに属性を追加しますか?
ディレクティブ<foo></foo>
( restrict: 'E'
) があるとします。属性を動的に追加する (~ テンプレートではなく元の DOM を変更する) 場合、これは$compile
ディレクティブのステップで行う必要があります。属性を追加した後、トリガーできる新しいディレクティブがあるかどうかを angularjs に認識させるには、新しい要素をコンパイルする必要があります。たとえば、それが ng-include の機能です。要素を DOM に含めてコンパイルし、新しいディレクティブを使用できるようにします。
ディレクティブfoo
:
compile: function ($tElement, $tAttrs) {
var el = $tElement[0];
el.setAttribute('bar', 'newFancyValue');
return function (scope, element, attrs) {
// you can even append html elements here, for example the template
element.append("<book></book>");
$compile(element)(scope);
};
}
およびディレクティブbar
( with restrict: 'A'
) には、必要なコードを含めることができます。
これはあなたが読みたいと思うかもしれない関連する質問です特定のタイプの一般的なディレクティブ(UIコンポーネントの継承)
ドキュメントのトランスクルード関数を見て、 in の以前の内部要素を追加する方法を確認してfoo
くださいbook