0

要素に追加されたディレクティブに応じて動作を変更する必要があるコンポーネントがあります。このカスタム ロジックはディレクティブで定義されるため、新しいスコープ/機能が追加されたときにコンポーネントを変更する必要はありません。

MyComponent
MyDirectiveBase
MyDirective1 extends MyDirectiveBase
MyDirective2 extends MyDirectiveBase

コンポーネント コンストラクターで、要素に適用されるディレクティブを挿入したいと考えています。使用される正確なクラスがわかっている場合は問題なくこれを行うことができますが、必要なのは MyDirectiveBase から拡張された任意のディレクティブです。

MyDirectiveBase のすべてのサブクラスを許可するように DI フレームワークに指示するにはどうすればよいですか?

インジェクション トークン (multi=true を使用) を使用してみましたが、要素インスタンスではなく、クラス/関数の配列が得られました。また、属性が指定されていない場合、ディレクティブは挿入されません。

サンプル リポジトリ: https://github.com/ulvesked/angular-dependency-inject-directive-subclass-to-component

StackBlitz: https://stackblitz.com/edit/angular-ivy-bihzjv?devtoolsheight=33&file=src/app/app.component.html

4

1 に答える 1