簡體   English   中英

如何注冊其DOM元素已由另一個JavaScript庫創建的Angular2組件?

[英]How can I register an Angular2 Component whose DOM element has been created by another javascript library?

假設我有一些與dynamically-added的選擇器相關聯的組件DynamicallyAddedComponent 還有另一個組件ParentComponent ,其中包含其他一些非Angular第三方javascript,它正在操縱其內部DOM樹,並可能添加或刪除<dynamically-added>標簽。

當我直接在ParentComponent的模板中添加<dynamically-added>標簽時,它呈現的很好,但是當我的第三方庫添加標簽時,angular無法識別已添加了組件。

我加入這兩個組件的@NgModule在聲明app.module.ts 我還添加了對第三方修改事件的事件處理程序中的ChangeDetectorRef.detectChanges()ApplicationRef.tick()調用。

那么如何手動告訴Angular已添加或刪除了組件? Angular如何在內部識別和引導組件?

您可以在ngZone運行第3方事件,這將觸發DOM更改檢測。

內部component.ts

constructor( public ngZone: NgZone) {}
ngZone.run( () => { // Change the property within the zone
  //3rd party event action
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM