Почему этот оператор switch не работает на Angular? - PullRequest
1 голос
/ 20 января 2020

У меня есть оператор switch вроде этого:

  switch (selectedValue1 ){
    case selectedValue1 ==  'قطع از بالا':
      console.log(selectedValue1);
      break;

Но я не вижу сообщения в журнале, и, следовательно, коммутатор не работает! Но я знаю и могу видеть selectedValue1 в сообщении журнала, и оно работает!

Выбранное значение исходит из этого HTML кода:

<div class="form-popup playerOne" id="myForm_if" dir="rtl">
    <form action="/action_page.php" class="form-container" >  
      <label for="funcs"><b>انتخاب شرط</b></label>

      <mat-select placeholder="انتخاب شرط " [(ngModel)] = "selectedValue1" name="condition" >
          <mat-option *ngFor="let ifin of ifs" [value]="ifin">
            {{ ifin }}
          </mat-option>
      </mat-select>
      <label for="funcs"><b>انتخاب نتیجه</b></label>

      <mat-select placeholder="انتخاب نتیجه" [(ngModel)] = "selectedValue2" name="result" >
          <mat-option *ngFor="let result of results" [value]="result">
            {{ result }}
          </mat-option>
      </mat-select>

        <button type="submit" class="btn " style="margin-top: 200px;" (click)="setCond(selectedValue1, selectedValue2)">اعمال</button>
        <button type="button" class="btn cancel" onclick="closeForm()">انصراف</button>
    </form>
</div>

И:

export const Ifs = ['انتخاب شرط', 'قطع از بالا', 'قطع از پایین'];
export const Results = ['انتخاب نتیجه', 'سیگنال خرید', 'سیگنال فروش', 'ارسال نتیجه' ];

1 Ответ

1 голос
/ 20 января 2020

Случай переключения автоматически сравнивает значения, нет необходимости в ==

switch (selectedValue1 ){
    case 'قطع از بالا':
      console.log(selectedValue1);
      break;

Когда вы выполняете сравнение строк внутри case, вы получаете этот фрагмент кода, который не работает, так как selectedValue1 != true

switch (selectedValue1 ){
    case true: // or false
       console.log(selectedValue1);
       break;
...