繁体   English   中英

如何禁用第三方库的angular2更改检测

[英]how to disable angular2 change detection for 3rd party libraries

我有谷歌地图,每秒触发100次以上的变化检测。 如何禁用此更改检测。

点击此处查看地图预览

使用鼠标悬停事件时会更糟。

ngDoCheck() {
  console.log('do check', this.i++);
}

我有同样的问题,尝试在组件构造函数上注入NgZone类

constructor(private zone: NgZone) {

)

然后,使用来自NgZone的runOutsideAngular方法从google图表中调用draw方法,执行类似这样的操作。

this.zone.runOutsideAngular(() => {
    var chart = new google.visualization.PieChart(nativeElement);
    chart.draw(dataTable, options);
})

这使得执行的代码不会触发角度检测变化。 将此应用于您制作的每个图表。 我希望找到这个有用的。

多亏了这个

临时禁用更改检测ChangeDetectorRef的另一个选项

enabled = true;  
constructor(private ref: ChangeDetectorRef)

toggleChangeDetection() {
  if (this.enabled) 
  {
    this.enabled = false;
    this.ref.detach();
  }
  else {
    this.enabled = true;
    this.ref.reattach();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM