AngularJS 'ng-switch-when' с выражением
Я знаю ng-switch-when
ожидает значение, но я создал ng-repeat
с этим.
Что мне нужно сделать, чтобы это работало?
<div ng-switch-when="2" ng-controller="pages as page" ng-switch="page.get()">
<div ng-repeat="i in [1,2,3,4,5]">
<div ng-switch-when="{{ i }}">
{{i}}
</div>
</div>
<button ng-hide="page.is(1)" ng-click="page.prev()" class="btn btn-info">Previous Page</button>
<button ng-hide="page.is(5)" ng-click="page.next()" class="btn btn-info">Next Page</button>
<br>
<label>Page {{page.get()}}</label>
</div>
Я хочу показать div
когда значение равно "i", но angularjs не принимает это.
Я не знаю, если это имеет большое значение, но я использую
ng-switch
внутриdiv
который отображается другимng-switch
,
заранее спасибо
РЕДАКТИРОВАТЬ 1: я хочу создать с
ng-repeat
5 страниц, которые находятся внутри нг-переключателя. Когда значение повторения "i" равно единице, я хочу, чтобы созданная им страница отображалась, когда значение переключателя равно единице, а также для остальных из них
2 ответа
Проще говоря:
Ты не можешь
Из документов:
Имейте в виду, что значения атрибутов для сопоставления не могут быть выражениями. Они интерпретируются как литеральные строковые значения для сравнения.
Что вы могли бы сделать, чтобы достичь того же результата, это использовать ng-show
следующее:
<div ng-repeat="i in [1,2,3,4,5]">
<div ng-show="page.get() === i">
{{i}}
</div>
</div>
Попробуйте что-то вроде этого:
<div ng-controller="pages as page" ng-switch="page.get()">
<div ng-repeat="i in [1,2,3,4,5]">
<div ng-switch = "i">
<div ng-switch-when = "1">
1
</div>
<div ng-switch-when = "2">
2
</div>
<div ng-switch-when = "3">
3
</div>
<div ng-switch-when = "4">
4
</div>
<div ng-switch-when = "5">
5
</div>
</div>
</div>
<button ng-hide="page.is(1)" ng-click="page.prev()" class="btn btn-info">Previous Page</button>
<button ng-hide="page.is(5)" ng-click="page.next()" class="btn btn-info">Next Page</button>
<br>
<label>Page {{page.get()}}</label>
</div>