- 火狐浏覽器相容性問題: disabled屬性會阻止事件冒泡,導緻一些複合元件點選事件無效。
- echart的柱狀圖資料為0時,無法通過點選事件觸發互動,需要通過注冊其它事件處理:
工作開發中遇到的問題注意事項備份(遇到問題會持續更新) this.echartsIntance.getZr().on('click',params=>{ const pointInPixel= [params.offsetX, params.offsetY]; if (this.echartsIntance.containPixel('grid',pointInPixel)) { let xIndex=this.echartsIntance.convertFromPixel({seriesIndex:0},[params.offsetX, params.offsetY])[0]; /*事件處理代碼書寫位置*/ } });
- 一般擷取的html中dom元素高度和寬度都不是最精确的,可以通過以下方法擷取到精确資料,如高度:
var obj = document.getElementById("#domId"); var oStyle = obj.currentStyle?obj.currentStyle:window.getComputedStyle(obj, null); var height = parseFloat(oStyle.height);
- angular的髒檢查幾種方式内容:
一般的檢測機制調用方式: Angular不僅可以讓開發者設定變化檢測的政策,還可以讓開發者擷取變化檢測對象引用ChangeDetectorRef,手動去操作變化檢測。變化檢測對象引用給開發者提供的方法有以下幾種: markForCheck():将檢查元件的所有父元件所有子元件,即使設定了變化檢測政策為onPush detach():将變化檢測對象脫離檢測對象樹,不再進行變化檢查;結合detectChanges可實作局部變化檢測 detectChanges():将檢測該元件及其子元件,結合detach可實作局部檢測 checkNoChanges(): 檢測該元件及其子元件,如果有變化存在則報錯,用于開發階段二次驗證變化已經完成 reattach():将脫離的變化檢測對象重新連結到變化檢測樹上
特殊的檢測機制調用(如排除某部分邏輯不需要自動檢測,或啟用某部分異步處理邏輯自動檢測): import { NgZone } from '@angular/core'; constructor( private zone: NgZone ) { } 調用runOutsideAngular方法,Angular不會對裡面的變化進行跟蹤: this.zone.runOutsideAngular(() => { // 邏輯 }); 想讓Angular跟蹤異步處理邏輯的變化,用其提供的run方法: this.zone.run(() => { // 邏輯 });