Hallo Ich habe follow json genannt Liste:Geben Klasse zum nächsten Eintrag in der Liste
{
"Items" : [
{
"InternalID": 1,
"Name" : "Item 1"
},
{
"InternalID": 2,
"Name" : "Item 2"
},
{
"InternalID": 3,
"Name" : "Item 3"
}
]
}
Jetzt habe ich Schleife diese Liste mit einem ng-repeat und zeigen den Wert der „Name“ in einem div. Ein Element ist immer aktiv. Zum Beispiel ist der Eintrag mit der "InternalID" = 1 in diesem Moment aktiv. Das nächste Element in der Liste, das heißt in diesem Beispiel das Element mit der "InternalID" = 2, sollte eine Klasse mit einem bestimmten Stil werden. Und wenn ich das Element mit der "InternalID" = 2 als aktiv setze, wäre das nächste Element in der Liste das Element mit der "InternalID" = 3, und dies sollte die Klasse mit dem spezifischen Stil erhalten. Ich versuchte es mit so:
<div class="cRibbonListItem" ng-repeat="item in ctrl.list.Items" ng-init="activeIndex = item.InternalID == ctrl.value.InternalID ? $index : activeIndex" ng-transclude="listItem" ng-if="item.InternalID != ctrl.value.InternalID" ng-class="{cNextItem: $index == activeIndex + 1}">
</div>
In meinem Controller (ctrl) Ich habe festgelegt und den aktuellen Wert von meiner Liste bekommen. Dann benutze ich den ng-init, um den aktiven Index zu erhalten, indem ich die "InternalID" meines Wertes und meines Artikels vergleiche. Danach benutze ich die ng-Klasse, um meine specifique Klasse dem Item in der Liste zu geben, welcher Index ist + 1 als mein aktiver Index, also sollte es das nächste Item in der Liste sein. Das klappt gut, wenn man es das erste mal öffnet. Nachdem ich ein neues aktives Item gesetzt habe, ändert es sich nicht. Das erste Element mit der Spezifikationsklasse ändert sich nicht, es ist immer dasselbe.
Was ist das Problem hier? Es war schwer es zu erklären, ich hoffe es ist gut zu verstehen.
Danke
Das ist perfekt, danke !! – MrBuggy