我试图找出在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版本的政策。
谢谢!