У меня есть раскрывающийся список строк, и я пытаюсь переключить, включен ли раскрывающийся список с помощью элемента управления формы. Насколько я понимаю, включение работает просто отлично, но для отключения я пытаюсь сделать два обновления формы одновременно, что вызывает проблемы.
Сначала я исправляю значение accountType
на ноль, затем пытаюсь отключить. Проблема в том, что, поскольку я обновляю форму дважды, поле не отключается в пользовательском интерфейсе. Я могу отключить его с помощью timeout
, но я бы предпочел использовать что-то более элегантное. Я пытался добавить [attr.disable]
в тег mat-select
, но ничего не сделал.
HTML
<mat-form-field>
<mat-select formControlName="accountType">
<mat-option [value]="type" *ngFor="let type of myTypes"> {{type}}</mat-option>
</mat-select>
</mat-form-field>
ц
toggleAccountType(serviceName: string) {
if (serviceName !== 'A' && serviceName !== 'B' && serviceName !== 'C') {
/** these two lines are the problem **/
this.inheritedForm.patchValue({accountType: null});
this.inheritedForm.get('accountType').disable();
} else {
this.inheritedForm.get('accountType').enable();
}
}