1

$index == $scope.counterng-repeat の場合、リスト内の特定の要素までスクロールする必要があります 。

HTML:

<button type="button" ng-click="findA()">FIND TYPE A</button>
<button type="button" ng-click="findB()">FIND TYPE B</button>    
<ul class="feeds">
  <li ng-repeat="m in mList" ng-class="showActive($index)">{{m.s}}</li>
</ul>

JS: コントローラー:

$scope.shouldScroll = true; 

$scope.mList=[{"s":3},{"s":23},{"s":33},{"s":12},{"s":31},{"s":231}];
$scope.showActive =function(index){
        /* only if scope.counter == index ,, then set the class,, 
NEED : to scroll to this element where index == counter */
   if(index == $scope.counter){
       return 'activeMarkClass';
   }
   return '';
}

$scope.findA =function(){
   $scope.counter=2;
}
$scope.findB =function(){
   $scope.counter=5;
}

問題 :

findAとが呼び出されるたびに、findBの css クラスliが変更されcounterますshowActiveしかし、この要素 counter までスクロールしたいです。したがって、findAが呼び出されたときに、findB が呼び出されたときに2 番目の項目と 5 番目の項目にスクロールしたいと考えています。ディレクティブを試しましたが、カウンターがそこでどのように使用されるか理解できませんでした。

注: カウンタは、コントローラの他のメソッドでも使用されます。そのため、ディレクティブ内で完全に移動することはできません。また、すでにそこにルーティング URL があるため、アンカー スクロールを実行したくありません。counterwindow scroll/scrollTo

4

1 に答える 1