我知道在ng2中我们有ComponentFactoryResolver
可以解析我们可以应用于ViewContainerRef
的工厂。
但是,指令有类似之处吗?一种实例化它们并将它们应用于组件中的投影内容的方法吗?
答案 0 :(得分:5)
不,无法动态添加或删除指令。它们仅适用于静态添加到组件模板的HTML。
您可以做的是通过将参数(@Input()
)传递给指令来启用/禁用指令,以通知它执行某些操作。
答案 1 :(得分:0)
这并非不可能。它只是丑陋且容易出错。要记住的基本事情是指令首先是一个类。如果您可以手动获得构造函数所需的东西,您可以简单地执行以下操作:
const highlight = new HighlightDirective(...);
为可能遇到意外行为做好准备,因为您将逃脱 Angular 的控制。
Read my full answer here 关于动态添加指令。