0

Ich weiß, ng-switch-when erwartet einen Wert, aber ich habe eine ng-repeat damit erstellt.AngularJS 'ng-switch-when' mit einem Ausdruck

Was für das ich brauche auszukommen ?:

<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> 

ich die div zeigen wollen, arbeiten, wenn der Wert „i“, aber AngularJS nicht akzeptieren.

Ich weiß nicht, ob das viel Unterschied macht, aber ich bin ein ng-switch in einem div das mit einem anderen ng-switch angezeigt wird.

Vielen Dank im Voraus

EDIT 1: möchte ich mit einem ng-repeat 5-Seiten erstellen, die in einem ng-Schalter sind. Wenn die Wiederholung „i“ Wert ist, möchte ich die Seite es erstellt angezeigt werden, wenn der Schalter Wert eins gleich, auch, und dass für den Rest von ihnen

+0

Können Sie ein wenig mehr erklären, was Ausgabe erwarten Sie? – Ahsan

+0

Ich möchte mit einem 'ng-repeat' 5 Seiten erstellen, die sich in einem ng-switch befinden. Wenn der Wiederholungswert "i" eins ist, möchte ich, dass die erstellte Seite angezeigt wird, wenn der Umschaltwert gleich Eins ist, und dass für den Rest von – Marcelo43

Antwort

0

Probieren Sie etwas wie folgt aus:

<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> 
+0

ich eigentlich vermeiden möchte, die fünf 'div's zu erstellen. deshalb möchte ich wie oben machen Ich weiß nur nicht, ob es möglich ist – Marcelo43

0

Einfach ausgedrückt:

Sie können nicht.

Von the docs:

Beachten Sie, dass die Attributwerte gegen übereinstimmen kann nicht Ausdrücke sein. Sie werden als wörtliche Zeichenfolgenwerte interpretiert, mit denen sie übereinstimmen.

Was Sie könnte das gleiche Ergebnis zu erzielen tun ist ng-show wie folgt verwenden:

<div ng-repeat="i in [1,2,3,4,5]"> 
    <div ng-show="page.get() === i"> 
     {{i}} 
    </div> 
</div>