2016-11-24 5 views
1

Ich habe ein div Element, wo der innerHtml an eine String (html) Eigenschaft gebunden ist.Angular 2 - Event nachdem innerHtml gerendert wurde

<div [effectDirectiveTrigger]="mainContent != null" 
     [innerHtml]="mainContent"></div> 

Ich versuche, eine Richtlinie zu bauen, dass „einige Effekte Feuer“ nach dem div mit seinem innerhtml gemacht wird, vollständig. Daher habe ich eine Trigger-Eigenschaft.

Mein Problem ist, dass, selbst wenn die Eigenschaft ausgelöst wurde, der innerHtml noch nicht geschrieben ist. Angular scheint dafür etwas Zeit zu benötigen. Es funktioniert nur, wenn es ein unschönes Zeitlimit setzt, um eckigen zu erlauben aufzuholen.

Gibt es ein Ereignis, an das ich binden könnte? Oder hast du eine andere/bessere Idee, um das zu erreichen, was ich versuche? Könnte jQuery helfen?

Antwort

0

innerHTML wird jedes Mal aktualisiert, wenn mainContent aktualisiert wird und der folgende Änderungserkennungszyklus aufgetreten ist. Es gibt kein Ereignis. Sie können ein Ereignis selbst ausgeben, nachdem mainContent aktualisiert wurde. Wenn Sie die Änderungserkennung selbst mit cdRef.detectChanges() aufrufen, wird es jetzt gerendert.

0

Schauen Sie sich https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html ngAfterViewInit sollte funktionieren.

+0

Bereits versucht 'ngAfterViewInit'. Es passiert viel zu früh und sogar vor den letzten 'ngOnChanges' - ** mainContent ** wird ** asynchron ** geladen. – Philipp

+0

'ngAfterViewInit' ist ein _Component-Only-Hook_ Das mag der Grund sein, warum es in meinem Fall nicht hilft. – Philipp

+0

Wäre es möglich, einen Plünderer oder so bereitzustellen? –

Verwandte Themen