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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AngularJS - 如何从控制器中的ng-repeat访问下一个项目相关的知识,希望对你有一定的参考价值。

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

我在我的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不一定是好的。

任何的想法 ?

答案

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

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

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

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

但是:ぁzxswい

另一答案

这简直太棒了

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

以上是关于AngularJS - 如何从控制器中的ng-repeat访问下一个项目的主要内容,如果未能解决你的问题,请参考以下文章

从angularjs中的服务调用控制器函数

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

如何从 WebView Cordova AngularJS 控制器访问/发送数据到 MainActivity?

一旦AngularJs中的数据库发生变化,如何实现自动视图更新?

如何从模板脚本访问 AngularJS 变量

AngularJS:如何从控制器功能切换视图?