Angular2完成UI更新后执行JavaScript

时间:2016-09-27 17:46:45

标签: angular zonejs

我试图找出在Angular更新UI后调用Javascript的最佳方法。

我的问题源于KendoUI需要display:block以便正确呈现。但是,Angular 2对this.toggleGridView的更改尚未在页面上呈现,这会导致jQuery(“#schools-grid”)。height()无法正常工作。

HTML模板:

<im-schools-grid [style.display]="toggleGridViewState"></im-schools-grid>   

Angular 2点击处理程序:

toggleGridView() {
    this.toggleGridViewState = this.toggleGridViewState == "none" ? "block" : "none";

    if (this.toggleGridViewState == "block") {
        setTimeout((e) => {
            jQuery("#schools-grid").height(this.sharedGrid.gridHeight);
            jQuery("#schools-grid").data("kendoGrid").resize();
        }, 100)
    }
}

我目前的解决方法是使用setTimeout,但这似乎非常hackish。

注意 - 我们不能将Angndo用于Angular 2,因为它是不使用Beta版本的政策。

谢谢!

0 个答案:

没有答案