私がやろうとしていること:
- 単一のディレクティブを使用する複数の異なるコンポーネント
- ディレクティブが呼び出されるとき、ディレクティブが呼び出される親/ホスト コンポーネントを取得できる必要があります。
Plnkr -> http://plnkr.co/edit/Do4qYfDLtarRQQEBphW3?p=preview
angular.io のドキュメントを見ると、コンストラクターで親コンポーネントを取得するために「インジェクター」を使用できることがわかりました。
constructor(private el: ElementRef, private hostComponent:Injector){
el.nativeElement.draggable = 'true';
}
そうすることで、Injector Object を取得します。私が言えることから、私はそれを使用することになっています
this.hostComponent.get(INJECTORTOKEN)
私が把握するのが難しい問題は、Angular で提供されている例では、トークンで提供するコンポーネントのタイプを知っていると仮定していることです。すなわち:
this.hostComponent.get(Image);
this.hostComponent.get(Box);
pnkr の例では、テンプレートに 2 つのコンポーネントがあります。
<div>
<h2>Hello {{name}}</h2>
<my-image></my-image> <!-- Uses the "My Directive" -->
<my-box></my-box> <!-- Uses the "My Directive" -->
</div>
私の質問は、「mydirective.ts」にあります。親が「my-image」コンポーネントか「my-box」コンポーネントかがわからない場合、「injector.get()」をどのように活用できますか。
提供されているサンプルでは、ディレクティブは「ondrag()」でトリガーされます。ログ メッセージについては、コンソールを表示します。
どんな支援も感謝しています。
よろしくお願いします。