天天看點

工作開發中遇到的問題注意事項備份(遇到問題會持續更新)

  1. 火狐浏覽器相容性問題: disabled屬性會阻止事件冒泡,導緻一些複合元件點選事件無效。
  2. 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];
            /*事件處理代碼書寫位置*/
    
    }
    });
               
  3. 一般擷取的html中dom元素高度和寬度都不是最精确的,可以通過以下方法擷取到精确資料,如高度:
    var obj = document.getElementById("#domId");
    var oStyle = obj.currentStyle?obj.currentStyle:window.getComputedStyle(obj, null);
    var height = parseFloat(oStyle.height);
               
  4. 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(() => {
      // 邏輯
    });
               

繼續閱讀