2016-09-18 80 views
5

我知道在ng2中我们有ComponentFactoryResolver可以解决我们可以应用到ViewContainerRef的工厂。如何以编程方式实例化和应用指​​令?

但是,是否有指示类似的东西?一种实例化它们并将其应用于组件中的投影内容的方法?

+0

其实我也没有这方面的想法,但看到该指令是非常相似的成分,不使用组件工厂指令无法正常工作? – poke

+0

它不起作用,它将不得不被添加到模块的entryComponents(因为entryComponent对于Directive装饰器不存在),并且它不喜欢它。 – lqbweb

回答

2

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

你可以做的是使能/通过传递一个参数(@Input())的指令,通知其做某件事,或者没有禁用指令。

+0

然后,如果我有一个TemplateRef,应该可以使用jQuery或其他方式手动修改它,以便它在实际投影时也可以实例化另一个指令。 – lqbweb

+1

我不这么认为。 'TemplateRef'永远不会被添加到DOM。它只能在Angular内部使用,因此你不能在jQuery中使用它。动态添加一些HTML,即使它匹配某个指令选择器,仍然不会实例化一条指令。 –

+0

所以基本上,在ng2中确实没有办法实际制定一个适用于他人的指令吗?这让我疯狂。我无法将投影视图的现有组件包装到其他组件中。简单地不支持? – lqbweb

相关问题