禁用滚动事件的ng-class更新

时间:2015-09-26 16:09:34

标签: angularjs ng-class angular-digest

我尝试在每个滚动事件中禁用ng-class reevulating。 当我尝试实现一个地址簿时,这是特别痛苦的,如果它是活动的,每个字母表都会通过ng-class进行检查:

<div class="btn-group">
      <a class="btn btn-default" ng-class="{active: alphabetIsActive(a)}" ng-repeat-start="a in alphabet" ng-repeat-end>{{a}}</a>
    </div>

字母表是:

  $scope.alphabet = 'ABCDEFGHIJKLMNOPQRSTUXYZ'.split('');

和alphabetIsActive:

$scope.alphabetIsActive = function(letter) {
  console.log('alphabetIsActive: ' + letter);
  if (letter === 'C') {return true;}
  else {return false;}
};

在每个滚动事件中重新调整上面的代码是疯狂的,即使在台式计算机上它也有明显的滞后。

我知道ng-class="::{active: alphabetIsActive(a)}"形式,但它完全杀死了交互性,ng-class永远不会更新。 (甚至没有点击事件)。

在我的情况下,当列表($scope.mainList变量)发生变化时,我只需要重新调整所选字母表。

0 个答案:

没有答案