0

我尝试在每个滚动事件中禁用 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就我而言,我只需要在列表(变量)更改时重新调整所选字母表。

4

0 回答 0