AngularJS - Wie der Zugriff auf das nächste Element aus einem ng-repeat in der Steuerung
Ich würde gerne Zugriff auf die Parameter des nächsten Elements auf dem Bildschirm, wenn Sie auf eine Schaltfläche.
Verwende ich eine ng-repeat in meiner html-Datei:
<li ng-repeat="item in items | filter:query" ng-show="isSelected($index)">
<a href="" ng-click="itemNext()"><img src="xxx.jpg" /></a>
</li>
Und der index in meinem Controller mit einer Schleife:
$scope.itemNext = function () {
$scope._Index = ($scope._Index < $scope.nbItems - 1) ? ++$scope._Index : 0;
$scope.functionToCallWithNextItem(nextItem.param1);
};
Einem einfachen $scope.items[$scope._Index].param1
statt nextItem.param1
würde nicht funktionieren, da die Daten so gefiltert $index+1
aus $scope.items
ist nicht unbedingt das gute.
Irgendeine Idee ?
- haben Sie eine spezifische Frage? was funktioniert nicht wie erwartet?
- wo ist
nextItem
erklärt? wo ist_Index
verwendet? es gibt viele Fehlstellen. nextItem
existiert nicht, ich wusste nicht, was zu setzen, anstatt, dass ist eigentlich das, was ich suchte... "_Index" ist der aktuelle index des Elements auf dem Bildschirm.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ordnen Sie Ihre gefilterten Daten an eine variable:
Dann verwenden
$index + 1
zu bekommen, der nächste Punkt:Demo: http://plnkr.co/edit/OdL5rIxtTEHnQCC3g4LS?p=preview
some_item_9
von Ihrem plunker Beispiel, um zu sehen, was ich meine)if(item === undefined) item = $scope.filteredItems[0];
was denkst du ? Plunker aktualisiert: plnkr.co/Bearbeiten/b66BTsVRGIqP9jb2RShc?p=Album VorhörenitemNext()
Funktion, die zur Initialisierung der app, wenn ich nur den Namen des Elements. sagen wir mal in den plunker Beispiel möchte ich simulieren, klicken Sie aufsome_item_7
beim Start der app, wie soll ich das tun ?Es ist einfach, dass