web-dev-qa-db-ja.com

Angular 2 ngSwitchCase、OR operator not working

複数のswitchステートメントがありますが、場合によっては一般的なケースが必要です。だから、私はしようとしている

OR operator => ||

例:

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

出力:

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

ここで最後から2番目のケースは複数のケースで構成され、デフォルトではcase 'd'case 'e' and 'f'に対してのみ機能し、機能しません。

ngSwitchCaseドキュメント内に複数のケースはありません。

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

しないAngular 2はngSwitchCase?の||演算子をサポートしていますか?

19
PaladiN

'd' || 'e' || 'f'を評価すると、結果は'd'になり、options'd'でない場合、一致しません。 ngSwitchCaseをそのように使用することはできません。

これはうまくいくでしょう:

    <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