Predpokladajme, že mám nejaký komponent DynamicallyAddedComponent
spojené s voličom dynamically-added
, Je tu aj ďalšia súčasť ParentComponent
ktorý obsahuje nejaký iný, nehlučný, javascript tretej strany, ktorý manipuluje s jeho vnútorným stromom DOM a môže pridať alebo odstrániť <dynamically-added>
tagy.
Keď pridám a <dynamically-added>
tag priamo na šablónu ParentComponent
to sa stáva v poriadku, ale keď moja knižnica tretích strán pridá značky, uhlová nerozpozná, že bol pridaný komponent.
Pridal som obe zložky do @NgModule
vyhlásenia v app.module.ts
, Pridal som tiež hovory ChangeDetectorRef.detectChanges()
a ApplicationRef.tick()
v rámci manipulátorov udalostí pre udalosti modifikácie tretej strany.
Takže ako môžem ručne povedať Angular, že bol komponent pridaný alebo odstránený? Ako rolovo rozpoznáva a bootstrap komponenty interne?
odpovede:
1 pre odpoveď č. 1Môžete spustiť udalosť tretej strany vo vnútri ngZone
ktoré by spustili DOM
detekcia zmien.
vnútri component.ts
constructor( public ngZone: NgZone) {}
ngZone.run( () => { // Change the property within the zone
//3rd party event action
});