2017-05-04 7 views
7

Ich habe mehrere Switch-Anweisung, aber für einige Fälle brauche ich den gemeinsamen Fall. Also, ich versuche, dieAngular 2 ngSwitchCase, ODER-Operator funktioniert nicht

OR operator => ||

Beispiel:

 <ng-container [ngSwitch]="options"> 
      <ng-container *ngSwitchCase="'a'">Code A</ng-container> 
      <ng-container *ngSwitchCase="'b'">Code B</ng-container> 
      <ng-container *ngSwitchCase="'c'">Code C</ng-container> 
      <ng-container *ngSwitchCase="'d' || 'e' || 'f'">Common Code</ng-container> 
      <ng-container *ngSwitchDefault>Code Default</ng-container> 
     </ng-container> 

Ausgang:

if case = 'd' returns Common Code 
else if case = 'e' and 'f' returns the Code Default 

Hier ist der zweitletzte Fall besteht aus mehreren Fällen und jetzt standardmäßig die case 'd' funktioniert nur und funktioniert nicht für case 'e' and 'f'.

Ich kann nicht mehrere Fall innerhalb der ngSwitchCase docs sehen:

https://angular.io/docs/ts/latest/api/common/index/NgSwitchCase-directive.html https://angular.io/docs/ts/latest/api/common/index/NgSwitch-directive.html

Hat die || Operator in der ngSwitchCase nicht Angular 2 unterstützt?

Antwort

18

Wenn Sie bewerten 'd' || 'e' || 'f' das Ergebnis ist 'd' und wenn options nicht 'd' ist, dann ist es nicht übereinstimmt. Sie können ngSwitchCase nicht auf diese Weise verwenden.

Dies funktionieren würde:

<ng-container [ngSwitch]="true"> 
     <ng-container *ngSwitchCase="options === 'a'">Code A</ng-container> 
     <ng-container *ngSwitchCase="options === 'b'">Code B</ng-container> 
     <ng-container *ngSwitchCase="options === 'c'">Code C</ng-container> 
     <ng-container *ngSwitchCase="options === 'd' || options === 'e' || options === 'f'">Common Code</ng-container> 
     <ng-container *ngSwitchDefault>Code Default</ng-container> 
    </ng-container> 
+2

Wow! Du bist "Angular God": D Ich dachte nicht, dass der "[ngSwitch]" den wahren Zustand haben sollte. ;) Danke für den Ausweg. Ich kratzte mich stundenlang am Kopf. – PaladiN

+1

Danke, gern geschehen. Freut mich zu hören, es behebt Ihr Problem :) –

+3

Works! Wichtiger Punkt: [ngSwitch] = "true" lässt alle "SwitchCase condition" Tags auswerten – ObjectiveTC