web-dev-qa-db-fra.com

Angular 2 ngSwitchCase, OR opérateur ne fonctionne pas)

J'ai plusieurs instructions de commutation, mais dans certains cas, j'ai besoin du cas commun. Donc j'essaye le

OR operator => ||

Exemple:

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

Sortie:

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

Ici l'avant-dernier cas se compose de plusieurs cas, et maintenant par défaut le case 'd' fonctionne uniquement et ne fonctionne pas pour case 'e' and 'f'.

Je ne vois aucun cas multiple dans les documents ngSwitchCase:

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

Ne fonctionne pas Angular 2 prend en charge le || opérateur dans le ngSwitchCase?

19
PaladiN

Si vous évaluez 'd' || 'e' || 'f' le résultat est 'd' et lorsque options n'est pas 'd', alors cela ne correspond pas. Vous ne pouvez pas utiliser ngSwitchCase de cette façon.

Cela fonctionnerait:

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