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

问题描述 投票:9回答:2

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

我在我的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>

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

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

一个简单的$scope.items[$scope._Index].param1而不是nextItem.param1将无法正常工作,因为数据被过滤,所以来自$index+1$scope.items不一定是好的。

任何的想法 ?

angularjs angularjs-ng-repeat angularjs-controller
2个回答
20
投票

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

<li ng-repeat="item in (filteredItems = (items | filter:query))">

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

<a ng-click="itemNext(filteredItems[$index + 1])">

但是:ぁzxswい


© www.soinside.com 2019 - 2024. All rights reserved.