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

lqb*_*web 7 projection angular-directive angular2-template angular

我知道在ng2中我们ComponentFactoryResolver可以解决我们可以申请的工厂ViewContainerRef.

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

Gün*_*uer 7

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

你可以做的是通过将一个参数(@Input())传递给指令来启用/禁用该指令,以通知它做某事或不做.

  • 所以基本上,在 ng2 中真的没有办法真正制定一个适用于其他人的指令吗?这让我发疯。我无法将投影视图的现有组件包装到其他组件中。根本不支持? (3认同)
  • 然后,如果我有一个 TemplateRef,应该可以使用 jQuery 或其他东西手动修改它,以便在投影时它也实例化另一个指令,对吗? (2认同)
  • 我不这么认为.`TemplateRef`永远不会添加到DOM中.它仅在Angular内部使用,因此您不能将它与jQuery一起使用.动态添加一些HTML,即使它与某些指令选择器匹配,仍然不会实例化指令. (2认同)
  • 关于这个https://github.com/angular/angular/issues/8785,github上存在一个未解决的问题 (2认同)