Выбор зависит от другого выбора - Материал угловой - PullRequest
0 голосов
/ 03 октября 2018

Я хотел бы создать два коврика.Один из них (связанный с reference) зависит от выбора с помощью type.

types - это массив с перечислениями, реализованными в Typescript.

Я пробовал следующим образом, нопосле выбора из ссылок, которые были правильными после изменения типа, выбор с reference пуст ...

<mat-form-field>
  <mat-label>Type</mat-label>
  <mat-select placeholder="Type" formControlName="type" name="type">
    <mat-option>None</mat-option>
    <mat-option *ngFor="let t of types" [value]="t">
      {{t}}
    </mat-option>
  </mat-select>
</mat-form-field>

<mat-form-field>
  <mat-label>Reference</mat-label>
  <mat-select placeholder="Reference" formControlName="reference" name="reference">
    <div [ngSwitch]="type.value">
      <div *ngSwitchCase="types[0]">
        <mat-option *ngFor="let r of deliveries" [value]="r.id">
          {{r.id}}
        </mat-option>
      </div>
      <div *ngSwitchCase="types[1]">
        <mat-option *ngFor="let r of orders" [value]="r.id">
          {{r.id}}
        </mat-option>
      </div>
      <div *ngSwitchDefault>
        <mat-option>None</mat-option>
      </div>
    </div>
  </mat-select>
</mat-form-field>

Может кто-нибудь помочь?Может быть, есть лучший способ сделать это?

Кстати ... Создание нового объекта без «выбора с помощью ссылки» является правильным, поэтому, вероятно, логика этого выбора виновна ...

1 Ответ

0 голосов
/ 03 октября 2018

Есть несколько способов достичь этого.Вы можете, например, создать два массива массива

deliveries=[[1,2,3],[4,5],[6,7,8]]
orders=[["A","B","C"],["D","E"],["F","G","H"]]

и сделать

<mat-option *ngFor let r of deliveries[myForm.get('type').value]>...</mat-option>
 //and
<mat-option *ngFor let r of orders[myForm.get('type').value]>...</mat-option>
...