我在angular应用程序中使用chart.js,并使用来自API端点的数据绘制图表。
ngOnInit(): void {
this._route.params.subscribe(p => {
let id: number = +this._route.snapshot.params["id"];
this.busy = this._awpsService
.getOutcomeItem("years", id).subscribe(data => {
this.years = data;
this.selYear = this.years[0];
this.ngZone.onMicrotaskEmpty.first.subscribe(() => {
$("#year").selectpicker();
$(window).resize();
});
this.getProjectItems(id);
});
});
}
上面的代码在angular 4上运行良好,但是升级到angular 7之后,我不得不将代码更改为
this.ngZone.onMicrotaskEmpty.subscribe(() => {
$("#year").selectpicker();
$(window).resize();
});
因为.first
的角度为7。这增加了CPU利用率并导致应用程序崩溃。
ngZone.onMicrotaskEmpty.first
已在我的应用程序中广泛使用,我不知道如何正确地进行更改检测。我也尝试过这种方式
this.ngZone.onMicrotaskEmpty.subscribe({
next: () => {
this.ngZone.run(() => {
$('#year').selectpicker();
$(window).resize();
});
}
});
但是没有运气。有人可以帮助我吗? 谢谢