我有一个div元素,其中innerHtml绑定到字符串(html)属性。
<div [effectDirectiveTrigger]="mainContent != null"
[innerHtml]="mainContent"></div>
我正在尝试建立一个指令,以解除一些影响&#34;在div与其innerHtml完全呈现之后。因此我有一个触发器属性。
@Input('effectDirectiveTrigger')
trigger:boolean = false;
ngOnChanges(){
console.log('ngOnChanges');
if (this.trigger){
// fire some effects
// seems to happen before the innerHtml has been rendered
}
}
我的问题是,即使触发了属性,还没有编写innerHtml。 Angular似乎需要一些时间。它只有在设置了一个不允许的超时以允许角度赶上时才有效。
我可以绑定一个事件吗?或者你有什么其他/更好的想法来实现我想做的事情? jQuery能帮忙吗?
答案 0 :(得分:0)
innerHTML
时都会更新 mainContent
并发生以下更改检测周期。没有事件。您可以在mainContent
更新后自行发出活动。如果您使用cdRef.detectChanges()
自行调用更改检测,那么您现在可以呈现它。
答案 1 :(得分:0)
看看https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html
ngAfterViewInit
应该有用。