Angular2 - 当innerHTML改变时做一些事情

时间:2017-02-27 13:53:56

标签: javascript html angular

我有一个组件,其inner html正在动态变化。我对此组件的子DOM元素执行了一些操作,因此每次更改此组件的inner html时都必须重复操作。

例如在组件中:

myElements = this.el.nativeElement.querySelectorAll('.myClass');
// do something with that DOM elements

在视图中:

<div *ngFor="let item of myItems">
    <div class="myClass">...</div>
</div>

我必须致电

myElements = this.el.nativeElement.querySelectorAll('.myClass');

每次更新myItems并加载新的DOM元素。

我可以将innerHTML绑定到ngOnChange()还是有其他方法可以实现此目的?

1 个答案:

答案 0 :(得分:2)

您可以尝试ngDoCheck:

https://angular.io/docs/ts/latest/api/core/index/DoCheck-class.html

您将手动检查innerHtml的旧值和新值,然后执行自定义代码。

潜在的例子:

public ngDoCheck(){
    if(this.oldInnerHtml != this.newInnerHtml){
        //take custom action
    }
}