#angular #typescript #angular-material #angular-material2
#угловой #typescript #angular-material #angular-material2
Вопрос:
У меня есть следующий код:
<mat-select formControlName="x" #xyz>
<mat-option *ngFor="let x of xList" [value]="x">{{ x.name }}</mat-option>
</mat-select>
Объект x выглядит примерно так:
x: {id: string, name: string}
Моя проблема в том, что я использую сервис для получения всех объектов ‘x’, а затем я получаю пользователя, которому принадлежит атрибут, равный объекту x для редактирования, но значение select не получает значение user.x как выбранное.
В моем файле .ts:
formUser = this.formBuilder.group({
id: null,
x: {
id: null,
name: null
}});
И в конструкторе:
if (this.router.getCurrentNavigation().extras.state){
this.user = this.router.getCurrentNavigation().extras.state.user;
this.formUser.patchValue(this.user);
}
Как это можно решить?
Комментарии:
1. Вы должны опубликовать демонстрационную версию Stackblitz с вашей проблемой, которая должна облегчить вам помощь. Для вас проблема, и думаю, вам нужно привязать свой mat-select к выбранному значению.
2. Да, я связал несколько входных данных и выбирал с помощью formControlName, но это единственное, что является объектом, вызывает у меня проблемы
3. Попробуйте [ngValue] вместо [значение]
4. Разве вам не нужен
compareWith
метод для<mat-select>
тега? material.angular.io/components/select/api5. @GreyBeardedDeek с ngValue то же самое