0
サードパーティのディレクティブhtmlをAngular 1.5で拡張またはラップする方法を探しています。AngularJS:ディレクティブをラップして属性を渡す
オリジナルと同じように使用されることを想定している<div>
<my-directive></my-directive>
<lib-input ng-if="vodoo()"></lib-input>
</div>
:私は、次のHTMLをレンダリングするディレクティブ<my-lib-input>
を作成したいディレクティブ
<lib-input></lib-input>
を考えると
指令。
例
オリジナルと同じように、私のディレクティブを使用するには、私は私のテンプレートの特定のノードにすべての属性を移動する必要があります。
<my-lib-input ng-model="model" ng-change="ctrl.onChange()"></my-lib-input>
は生成する必要があります:
<div>
<my-directive></my-directive>
<lib-input ng-if="vodoo()" ng-model="model" ng-change="ctrl.onChange()"></lib-input>
</div>
ただし、角度はすべてのデフォルトではルートノード(ここではdiv
)に属性を追加します。
質問
は、どのように私は、テンプレートの特定のノードに私のディレクティブに渡されるすべてのパラメータ/属性を適用しますか?
私は次のように私のディレクティブで使用可能なパラメータのリストをハードコーディング予防したいと思います:
restrict: 'E',
scope : {
ngModel: '=',
ngChange: '&',
...
}
おかげのようなスコープパラメータのチェーンを持つことができ、しかし、これはまさに私が避けたいのは、入力ディレクティブに渡す可能性のあるすべての単一のスコープパラメータを指定する必要があるからです。それは "長い"リストであるだけでなく、私のディレクティブが私が予想しなかったもの(将来のアップデートで追加される可能性のある機能など)と互換性がないためです。 –
親ディレクティブのコントローラーにパラメーターのリストを要求することができます。あなたがしたい場合、私は答えを更新することができます。 –
それは素晴らしいと思う、私は本当に例を感謝します! –