Angenommen, ich habe eine Komponente DynamicallyAddedComponent
mit dem Selektor verbunden dynamically-added
. Es gibt eine andere Komponente ParentComponent
Das enthält ein anderes, nicht-eckiges JavaScript von Drittanbietern, das seinen internen DOM-Baum manipuliert und hinzufügen oder entfernen kann <dynamically-added>
Stichworte.
Wenn ich a <dynamically-added>
Tag direkt an die Vorlage von ParentComponent
es macht gut, aber wenn meine Drittanbieter-Bibliothek Tags hinzufügt, erkennt angular nicht, dass eine Komponente hinzugefügt wurde.
Ich habe beide Komponenten hinzugefügt @NgModule
Erklärungen in app.module.ts
. Ich habe auch Anrufe hinzugefügt ChangeDetectorRef.detectChanges()
und ApplicationRef.tick()
innerhalb von Event-Handlern für die Modifikationsereignisse Dritter.
Wie kann ich Angular manuell mitteilen, dass eine Komponente hinzugefügt oder entfernt wurde? Wie erkennt und bootet Angular intern Komponenten?
Antworten:
1 für die Antwort № 1Sie könnten das 3rd-Party-Event innerhalb ausführen ngZone
was würde auslösen DOM
Erkennung ändern
Innerhalb component.ts
constructor( public ngZone: NgZone) {}
ngZone.run( () => { // Change the property within the zone
//3rd party event action
});