2016-09-18 82 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

相關問題