簡體   English   中英

Angular ui-grid:為每個數據單元格渲染調用注入數據網格標題內的方法

[英]Angular ui-grid : Method injected inside header of data grid is being called for each data cell rendering

為每個數據單元格渲染調用注入數據網格頭部的方法,並且在我們進行水平或垂直滾動​​時也會調用。 為了重現這個問題,我在這里附上了 plnkr 鏈接。 http://plnkr.co/edit/ZW43LsiLY7GdnX6XEOgG?p=preview , http://plnkr.co/edit/3E8HTz4Z2daGqRh1WHtx?p=preview ( <div class="ui-grid-top-panel" style="text-align: center">{{grid.appScope.letter()}}</div> ,嘗試排序,水平或垂直滾動​​)。

例如:下面是標題單元格視圖模板,我們injected {{ grid.appScope.getHeaderLetter( col.name, $parent.$index )}}並且當我們進行水平或垂直滾動​​或在初始單元格渲染時 getHeaderLetter正在為每個數據單元調用方法。 換句話說,如果我們有 100000 個單元格,那么方法將被調用 100000 次。 我想我在用例方面遺漏了一些重要的事實。 我非常感謝您對此發表評論。

----標題定義----

<div class="ui-grid-top-panel ui-grid-top-panel-single" id="{{'ui-grid-index-' + col.name  }}" style="text-align: center">
  <div class="ui-grid-alphbet ui-grid-alphbet-first">{{ grid.appScope.getHeaderLetter( col.name, $parent.$index ) }}
  </div>
     .
     .
     .
     more code 

我在這里問了同樣的問題...... https://github.com/angular-ui/ui-grid/issues/4250 ,但沒有得到任何答復。

這就是角度臟檢查的工作方式。 您對此無能為力。 盡量不要在這些函數中放置長時間運行的操作。

這個怎么樣:

  $scope.letterFn = function () {
    console.log("CHANGE LETTER")
    return i;
  }

  $scope.letter = $scope.letterFn();

http://plnkr.co/edit/yF1sSG2QXeO9cFNAeDYm?p=preview

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM