AngularJS $index inside ng-switch

angularjs, angularjs-ng-repeat, indexing, ng-switch

Solution

you cannot use expressions with `ngSwitch`

refrer this doc

Be aware that the attribute values to match against cannot be expressions. They are interpreted as literal string values to match against. For example, ng-switch-when="someVal" will match against the string "someVal" not against the value of the expression $scope.someVal

this implies that `ng-switch-when="$index"` `$index` is treated as a string not as a index value

use ngIf instead

    <span ng-if="$index == MenuSelected">{{ contact }} {{$index}}</span>

here is the working Fiddle

Problem

I am trying to access `$index` of `ng-repeat` and place it inside `ng-switch-when`. Here is the last thing I have tried. Small piece of what I am trying to do: ``` <li ng-repeat="contact in contacts" ng-switch on="MenuSelected"> <span ng-switch-when="$index">{{ contact }} {{$index}}</span> </li> ``` `MenuSelected` I have define in my controller with 0 for example, and I have 2 contacts for test. I have tried to mix `ng` things in different tags and everything fall (just show lines), so I don't think that is the problem. When I remove `$index` and place for example 0 everything show up.

Original source