私は2つのものを含む角度スコープを持っています:
- レンダリングに 1 秒かかる 10,000 行の巨大なテーブル
- 固定オーバーレイ ヘッダー バーの上部にあるいくつかの小さな追加情報
ページ/テーブルをどれだけ下にスクロールしたかに応じて、ヘッダーの小さな情報ビットの 1 つを更新する必要があります。これは、スクロールした距離の % カウンターと考えることができます。
現在のスクロール位置を取得するために、ディレクティブを作成しました (ここでも見つけることができます)。
app.directive "setWindowScroll", ->
restrict: "E"
scope:
setVariable: "="
link: (scope) ->
$(window).scroll ->
scope.$apply ->
scope.setVariable = $(window).scrollTop()
私の問題は、これによりテーブル内のスクロールが非常に遅くなることです*。これは、ディレクティブで書き込む veriable がスコープ内の追加情報にあり、それを変更すると、my$apply
が呼び出されたときに angular がテーブル全体の変更をダーティチェックするように見えるためです。
このスクロールによってテーブル内の何も変更されないことはわかっており$apply
、サイトのヘッダー部分に影響を与えるように制限したいと考えています。
angularテーブルをダーティチェックしないようにするにはどうすればよいですか?