Mat-select: нет предварительно выбранного значения при загрузке данных по обещанию

Я загружаю массив групп для матового выбора через 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().


person Tyrcheg    schedule 02.05.2018    source источник


Ответы (1)


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

person G. Tranter    schedule 02.05.2018