如何以编程方式实例化和应用指​​令?

时间:2016-09-18 23:21:05

标签: angular projection angular-directive angular2-template

我知道在ng2中我们有ComponentFactoryResolver可以解析我们可以应用于ViewContainerRef的工厂。

但是,指令有类似之处吗?一种实例化它们并将它们应用于组件中的投影内容的方法吗?

2 个答案:

答案 0 :(得分:5)

不,无法动态添加或删除指令。它们仅适用于静态添加到组件模板的HTML。

您可以做的是通过将参数(@Input())传递给指令来启用/禁用指令,以通知它执行某些操作。

答案 1 :(得分:0)

这并非不可能。它只是丑陋且容易出错。要记住的基本事情是指令首先是一个类。如果您可以手动获得构造函数所需的东西,您可以简单地执行以下操作:

const highlight = new HighlightDirective(...);

为可能遇到意外行为做好准备,因为您将逃脱 Angular 的控制。

Read my full answer here 关于动态添加指令。