Загружаю массив групп для выбора матов по http. Мой код .ts выглядит так:
async ngOnInit(): Promise<void> {
this.groups = await this.service.loadGroups();
this.form = new FormGroup(
groupId: new FormControl(this.user.groupId || 0)
);
}
public get groupId(): AbstractControl { return this.from.get('groupId'); }
и в моем html:
<mat-form-field>
<mat-select formControlName = "groupId" [value] = "resellerGroupId.value" required>
<mat-option *ngFor = "let group of groups" [value] = "group.id">
{{ group.name }}
</mat-option>
</mat-select>
</mat-form-field>
Поэтому, когда я загружаю такие данные, у меня нет предварительно выбранного значения в mat-select. Если данные зарезервированы как массив значений - нет проблем, но когда я добавляю Promise, он выходит из строя. Я не могу понять, почему значение в пользовательском интерфейсе не обновляется после выполнения обещания loadGroups ().
Вам нужно использовать асинхронный канал с mat-option. Взгляните на пример автозаполнения, чтобы увидеть, как это делается.