Angular 2 - 在渲染innerHtml之后的事件

时间:2016-11-24 09:01:05

标签: angular angular2-directives

我有一个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能帮忙吗?

2 个答案:

答案 0 :(得分:0)

每次更新innerHTML时都会更新

mainContent并发生以下更改检测周期。没有事件。您可以在mainContent更新后自行发出活动。如果您使用cdRef.detectChanges()自行调用更改检测,那么您现在可以呈现它。

答案 1 :(得分:0)