У меня была та же проблема с раскрывающимися списками, в которых не отображаются уже сохраненные / выбранные варианты, и этот ответ на другой вопрос, наконец, помог.
Решение состоит в использовании свойства [compareWith]="compareFunction"
для выбора.тег для переопределения сравнения по умолчанию.Ссылаясь на пользовательскую функцию сравнения, вы можете настроить, как должно работать сопоставление исходного значения с раскрывающимися значениями.
Мое текущее решение:
<mat-form-field>
<mat-select formControlName="gender" [compareWith]="compareSelectValues">
<mat-option *ngFor="let gender of genderValues" value="{{gender.id}}">{{gender.label}}</mat-option>
</mat-select>
</mat-form-field>
И функция Typescript:
private compareSelectValues(selectedValue, compareValue): boolean {
return Number(selectedValue) === compareValue;
}
Number()
необходимо, поскольку значение преобразуется в строку после установки его в HTML.Использование компонентов дизайна материала здесь, но, глядя на другой пост, это не должно изменить общую функциональность.Надеюсь, это поможет кому-то, кто найдет этот вопрос раньше другого, как я.