$index == $scope.counter
如果使用 ng-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
andfindB
被称为 css 类时li
,counter
使用showActive
. 但我也想滚动到这个元素计数器。因此,当findA
调用 findB 时,我想滚动到第 2 项和第 5 项。尝试了指令,但不明白如何在那里使用计数器。
注意:计数器也被控制器中的一些其他方法使用。所以不能counter
完全在指令中移动。也不想做锚滚动,因为那里已经有路由网址,需要一个window scroll/scrollTo