Angular 8 Реактивная форма, установить выбранный вариант по умолчанию - PullRequest
0 голосов
/ 21 апреля 2020

Извините, я не могу установить выбранную по умолчанию опцию в раскрывающемся списке при открытии формы диалоговой модели.

У меня две модели

  1. отдел
  2. сотрудник

Также у меня есть два компонента, это сотрудник и список сотрудников, компонент списка сотрудников отвечает за загрузку всего списка сотрудников в таблице, а компонент сотрудника отвечает за загрузку одного сотрудника ..

В списке сотрудников я устанавливаю событие щелчка, которое вызывает функцию редактирования, и заполняет выбранную строку в форме для целей редактирования. Но когда форма открывается, то при открытии с другими опциями выбора не появляется, я не знаю почему.

employee.ts

  dept: any;

     ngOnInit() {
      this.loadAllDept();
      this.selected = this.employeeService.form.get('department').value;
      }

    loadAllDept(){
        this.employeeService.getAllDepartments().subscribe(
          data => {
            this.dept = data;
          }
        );
      }

И мой сотрудник. html

    <mat-grid-tile>
      <div class="reg-control-container">
        <mat-form-field>
          <mat-select [(value)]="selected"  formControlName="depatment" placeholder="Class">
            <mat-option>None</mat-option>
            <ng-container>
              <mat-option *ngFor="let d of dept" value="{{d.id}}"> {{ d.name }}</mat-option>
            </ng-container>
          </mat-select>
        </mat-form-field>
      </div>
    </mat-grid-tile>

, но он не устанавливает значение по умолчанию в раскрывающемся списке.

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

, как показано ниже

1 Ответ

0 голосов
/ 21 апреля 2020

Взгляните на этот пример, https://stackblitz.com/edit/angular-5short

Имейте в виду, что вам необходимо привязать значение опции, используя синтаксис привязки свойств, предоставляемый Angular, заключая в оболочку свойство, которому вы хотите присвоить значение в квадратных скобках ([]). При этом, до тех пор, пока вы передаете то же значение в требуемый FormControl, он должен правильно применить параметр по умолчанию.

...