1

我试图找出在 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,但这似乎很不合时宜。

注意 - 我们不能将 Kendo 用于 Angular 2,因为不使用 Beta 版本是一项政策。

谢谢!

4

0 回答 0