AngularJS - 如何从控制器中的ng-repeat访问下一个项目

Fre*_*red 9 angularjs angularjs-ng-repeat angularjs-controller

我想在点击按钮时访问屏​​幕上下一个项目的参数.

我在我的html文件中使用ng-repeat:

<li ng-repeat="item in items | filter:query" ng-show="isSelected($index)">
    <a href="" ng-click="itemNext()"><img src="xxx.jpg" /></a>
</li>
Run Code Online (Sandbox Code Playgroud)

和我的控制器中的索引循环:

$scope.itemNext = function () {
    $scope._Index = ($scope._Index < $scope.nbItems - 1) ? ++$scope._Index : 0;
    $scope.functionToCallWithNextItem(nextItem.param1);
};
Run Code Online (Sandbox Code Playgroud)

一个简单$scope.items[$scope._Index].param1的,而不是nextItem.param1作为数据进行过滤,这样是行不通$index+1$scope.items不一定是好的.

任何的想法 ?

tas*_*ATT 20

您可以将过滤后的数据分配给变量:

<li ng-repeat="item in (filteredItems = (items | filter:query))">
Run Code Online (Sandbox Code Playgroud)

然后$index + 1用来获取下一个项目:

<a ng-click="itemNext(filteredItems[$index + 1])">
Run Code Online (Sandbox Code Playgroud)

演示: http ://plnkr.co/edit/OdL5rIxtTEHnQCC3g4LS?p=preview