使用按钮单击更改ng-repeat中$ index选择的类

时间:2017-03-23 12:31:25

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

我有一个ng-repeat项目列表。单击它们时,会添加一个更改图像外观的类。 我想现在在点击左右按钮时发生这种情况。 因此,您可以单击左键将该类放在左侧,因为左侧被选中,然后单击右键滚动并向右添加该类。

HTML:

<div class="options">
    <div ng-repeat="colour in colours" class="swatch-option" ng-class="{ chosen: $index === index }">
        <div class="swatch-title" ng-show="$index === index"><p class="text"> {{colour.thumbData.description | smcl10n}} </p></div>
        <img ng-click="changeColour($index);" ng-src="{{colour.thumbMedia | smcmediaurl}}" class="colour-swatches" />
    </div>
</div>


        <div class="arrow left small" ng-click="changeColour($index)(-1)" ng-src="{{colour.thumbMedia | smcmediaurl}}"></div>
        <div class="arrow right small" ng-click="changeColour($index)(1)" ng-src="{{colour.thumbMedia | smcmediaurl}}"></div>

JS:

        $scope.index = 0;
        $scope.selected = $scope.colours[$scope.index];

        $scope.changeColour = function changeColour(_index){
            $scope.index = _index
            $scope.selected = $scope.colours[$scope.index];
        }

1 个答案:

答案 0 :(得分:0)

您无法在ng-repeat范围之外访问$ index。它将是未定义的。而是使用您的控制器范围变量索引。

somefile=blahblahblah.final.bam
foo "$somefile" "${somefile%.*}_R1.fastq" "${somefile%.*}_R2.fastq"