我有谷歌地圖,每秒觸發100次以上的變化檢測。如何爲此禁用更改檢測。如何禁用第三方庫的angular2變化檢測
使用鼠標懸停事件時,它會更差。
ngDoCheck() {
console.log('do check', this.i++);
}
我有谷歌地圖,每秒觸發100次以上的變化檢測。如何爲此禁用更改檢測。如何禁用第三方庫的angular2變化檢測
使用鼠標懸停事件時,它會更差。
ngDoCheck() {
console.log('do check', this.i++);
}
我有同樣的問題,請嘗試注入NgZone類上的組件構造
constructor(private zone: NgZone) {
)
然後,使用runOutsideAngular方法從NgZone放在一個回調從谷歌圖表的繪製方法,做像這樣的東西。
this.zone.runOutsideAngular(() => {
var chart = new google.visualization.PieChart(nativeElement);
chart.draw(dataTable, options);
})
這使得執行代碼不會觸發角度檢測更改。 將其應用於您製作的每張圖表。我希望找到這個幫助。
謝謝。在我公司的網站上使用這個畫布動畫https://github.com/aviabird/website/blob/master/src/app/shared/services/canvas-animate.service.ts – pkrawat1
另一個選擇暫時禁用更改檢測ChangeDetectorRef
enabled = true;
constructor(private ref: ChangeDetectorRef)
toggleChangeDetection() {
if (this.enabled)
{
this.enabled = false;
this.ref.detach();
}
else {
this.enabled = true;
this.ref.reattach();
}
我不認爲這是關係到第三方directived。 Angular2在每個事件之後運行變化檢測。您可以設置'ChangeDetectionStrategy.OnPush'來執行手動更改檢測。 –