2014-11-26 5 views
4

Я пытаюсь получить доступ к $index из ng-repeat и разместить его внутри ng-switch-when. Here is the last thing I have tried. Небольшой кусочек того, что я пытаюсь сделать:

<li ng-repeat="contact in contacts" ng-switch on="MenuSelected"> 
<span ng-switch-when="$index">{{ contact }} {{$index}}</span> 
</li> 

MenuSelected Я должен определить в мой контроллер с 0, например, и у меня есть 2 контакта для испытания. Я пытался смешивать ng вещи в разных тегах, и все падало (просто показать строки), поэтому я не думаю, что это проблема. Когда я удаляю $index и место, например, 0 все появляется.

ответ

4

вы не можете использовать выражения с ngSwitch

refrer это doc

Имейте в виду, что значения атрибутов для сопоставления не могут быть выражениями. Они интерпретируются как литеральные значения строк для соответствия. Например, нг-включение, когда = «someVal» будет соответствовать по отношению к строке «someVal» не против значения выражения $ scope.someVal

это означает, что ng-switch-when="$index"$index трактуется как строка не как значение индекса


использование ngIf вместо

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

здесь рабочий Fiddle

+0

'ng-switch-when =" {{$ index}} "' все еще не работал –

+0

да его высказывание вам не разрешено использовать выражения –

+0

Удивительный, 'ng-if' отлично работает –