Использование Angular 2 и Angular Material 6.4.7
Мне нужно установить выбранную по умолчанию опцию с помощью компонента mat-select.
Следующий код работает должным образом и устанавливает значение по умолчанию, когда я не использую привязку [formControl].
пример ниже:
<mat-form-field>
<mat-select [(value)]="currentYear" placeholder="Select A Year" [formControl]="year.get('year')" >
<mat-option *ngFor="let y of yearsArr;" [value]="y">{{ y }}</mat-option>
</mat-select>
</mat-form-field>
Текущий год (currentYear) - это переменная, которая получает значение текущего года.
Однако, когда я использую привязку элемента управления формы, он не может установить параметр по умолчанию для компонента mat-select.
пример ниже:
<mat-form-field>
<mat-select [(value)]="currentYear" placeholder="Select A Year" [formControl]="year.get('year')" >
<mat-option *ngFor="let y of yearsArr;" [value]="y">{{ y }}</mat-option>
</mat-select>
</mat-form-field>
Я искал переполнение стека и наткнулся на это решение, которое работает, однако я получаю предупреждение в консоли браузера, я не уверен, что это правильный метод достижения этого.
пример ниже:
<mat-form-field>
<mat-select [(ngModel)]="currentYear" placeholder="Select A Year" [formControl]="year.get('year')" >
<mat-option *ngFor="let y of yearsArr;" [value]="y">{{ y }}</mat-option>
</mat-select>
</mat-form-field>
Предупреждение, которое я получаю, находится ниже:
Похоже, вы используете ngModel в том же поле формы, что и formControl. Поддержка использования свойства input ngModel и события ngModelChange с директивами реактивной формы устарела в Angular v6 и будет удалена в Angular v7. Для получения дополнительной информации об этом см. Нашу документацию по API здесь: https://angular.io/api/forms/FormControlDirective#use-with-ngmodel.
Я прочитал вышеприведенный вывод, но до сих пор не могу понять, как это исправить.
Мы будем очень благодарны за любую помощь, чтобы прояснить или просветить меня о правильном методе достижения этого.