如何将子类的指令注入组件

狼匙

我有一个组件,应该根据向该元素添加的指令来更改其行为。此自定义逻辑在指令中定义,因此在添加新的作用域/功能时无需修改组件。

MyComponent
MyDirectiveBase
MyDirective1 extends MyDirectiveBase
MyDirective2 extends MyDirectiveBase

在组件构造函数中,我想注入应用于该元素的指令。当我知道将要使用的确切类时,我可以做到这一点而没有问题,但是我想要的是从MyDirectiveBase扩展的任何指令。

如何告诉DI框架允许MyDirectiveBase的所有子类?

我尝试使用注入令牌(具有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

yinnping

这是一个示例。

https://stackblitz.com/edit/angular-ivy-tnb5up

基本思想是使每个指令为基本类MyGreetingDirective提供已实现的类。因此,HelloComopnent可以根据您的属性从Angular DI获取不同的指令实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章