我有一個包含另一個組件(Comp
)的組件(App
)。 App
從數據庫獲取字符串內容並將其轉發@Input()
至Comp
。此字符串的內容可以包含類似Angular2:如何獲取子組件中的ViewChild的引用
Some text before <a>Click</a> Some Text after
在Comp
這個內容應該被渲染和一些事件偵聽器都應該被加入HTML標籤。因此,使用[innerHtml]
添加此內容。由於(click)
在[innerHtml]
中被刪除,因此需要引用a
標記,並且應該將事件偵聽器與addEventListener
一起添加。但我找不到方法來引用a
標記,因爲組件ElementRef
不包含nativeElement
。
運行此運行程序的最佳方法是什麼? https://plnkr.co/edit/xVUu0LJ02YVnBO25Zr4j?p=preview
正如我所說的,內容來自外部數據庫。我無法編輯'a'標籤。事件處理非常通用,取決於組件的使用位置。因此,有必要事件來自'App'而不是來自'Comp' –
好吧,抱歉誤會了您的要求。你可以看一下@echonax的答案,但是,正如他所說的,「在Angular2中(直接DOM訪問被(強烈)阻止」)。對於代碼的「清潔」,還有性能和副作用問題。也許如果你的字符串足夠正常,你可以重寫html?可能是值得的。 – Pac0
此項目也強烈建議不要直接訪問DOM,所以我必須找到另一種方式。目前我試圖將視圖公開給父組件。 –