1. ホーム
  2. angular

[解決済み] 角度の2つのスイッチケース値

2022-11-12 07:51:55

質問

phpとjavaで、以下のようなことができます。

case 1:
case 2:
   echo "something";

値が1または2のとき、quot;何か"が画面に表示されるように、私は以下のようなことをやっているアンギュラーアプリケーションを構築しています。

<div [ngSwitch]="data.type">
  <div *ngSwitchCase="'multi-choice'">FORM 1</div>
  <div *ngSwitchCase="'singe-choice'">FORM 1</div>
  <div *ngSwitchCase="'range'">FORM 2</div>
</div>

単一選択に使用されているフォームは複数選択にも使用できますが、より整理しやすくするために以下のようなものを試してみました。

<div [ngSwitch]="data.type">
  <div *ngSwitchCase="'multi-choice' || 'singe-choice'">FORM 1</div>
</div>

運悪くうまくいきませんでした。誰かこれを行うための良い方法を提案してください。

どのように解決するのですか?

(不運にも)それはできません。 ngSwitch は、ソースコードを見るとかなり「間抜け」です。 === をケース値とスイッチ値の間に挟んでいるだけだからです。2つのオプションがありますが、どちらも素晴らしいとは程遠いものです。

オプション1は、ディレクティブ *ngSwitchDefault しかし、これはすべてのマルチケースがFORM 1である場合にのみ機能します。

<div [ngSwitch]="data.type">
  <div *ngSwitchDefault>FORM 1</div>
  <div *ngSwitchCase="'range'">FORM 2</div>
</div>

もう一つの選択肢は、かなり冗長ですが、次のようなことをします。

<div [ngSwitch]="data.type">
  <div *ngSwitchCase="data.type === 'multi-choice' || data.type === 'singe-choice' ? data.type : '' ">FORM 1</div>
  <div *ngSwitchCase="'range'">FORM 2</div>
</div>