两次ng-repeat,$ index在第二次ng-click中没有发送正确的值

时间:2014-01-26 20:49:26

标签: javascript angularjs angularjs-directive angularjs-ng-repeat angularjs-ng-click

我有两个ng-repeat在同一个指令中相互跟随:

<section slider class="slider">
    <nav>
        <ul>
            <li ng-repeat="slide in slider[0]" ng-class="{'active':isCurrentSlideIndex($index)}" ng-click="setCurrentSlideIndex($index)" class="no-text"></li>
        </ul>
    </nav>
    <ul>
        <li ng-repeat="slide in slider[0]" ng-class="{'active':isCurrentSlideIndex($index)}" class="grid" ng-click="setCurrentSlideIndex($index+1)">
            <img ng-src="{{slide.image}}" alt="" />
        </li>
    </ul>
</section><!-- section.slider -->

第一个ng-click =“setCurrentSlideIndex($ index)”工作得很好。 但是第二个总是发送$ index的最后一个值(例如,如果有3个图片,它将始终为2)。 (isCurrentSlideIndex($ index)正常工作。)

您有任何想法如何解决这个问题吗?

谢谢

更新

angular.module('app')
  .directive('slider', function () {
    return {
      restrict: 'A',
      scope: true,
      controller: function($scope){
        $scope.currentIndex = 0;
        $scope.setCurrentSlideIndex = function(index){
        $scope.currentIndex = index;
        };
        $scope.isCurrentSlideIndex = function(index){
        return $scope.currentIndex === index;
        };
      }
    };
  });

0 个答案:

没有答案