【发布时间】:2020-08-06 16:29:21
【问题描述】:
我有 2 个表单控件,一个是选择另一个是输入字段:
<form [formGroup]="timeForm">
<div>
<mat-form-field appearance="outline" class="fullInputWidth">
<mat-label>Sunday</mat-label>
<mat-select formControlName="SundayStatus">
<mat-option value="Opened">Opened</mat-option>
<mat-option value="Closed">Closed</mat-option>
</mat-select>
</mat-form-field>
</div>
<div>
<mat-form-field appearance="outline" class="fullInputWidth">
<mat-label>Opens at</mat-label>
<input formControlName="SundayOpen" name="SundayOpen" matInput autocomplete="off" [format]="24" [ngxTimepicker]="SundayOpen" readonly >
<ngx-material-timepicker #SundayOpen [minutesGap]="15"></ngx-material-timepicker>
</mat-form-field>
</div>
</form>
在我的组件内部:
this.timeForm = this.formBuilder.group({
SundayStatus: ['Closed'],
SundayOpen: ['']
}):
所以我想在控件“SundayStatus”的值为“Closed”时禁用表单控件:“SundayOpen”。
现在的问题是“SundayStatus”的值已经初始化为“Closed”。
如果我将此代码放在输入#SundayOpen:
[disabled]="timeForm.get('SundayStatus').value == 'Closed'"
它不会第一次禁用控件,但一旦我将下拉值更改为“打开”==>“关闭”,它就会起作用
救命!
【问题讨论】:
-
试试
timeform.controls['SundayStatus'].value === 'Closed'如果这不起作用,请尝试提供一个重现问题的stackblitz -
当您使用响应式表单时,请勿在模板中使用
[disabled]。避免混合响应式表单和模板表单
标签: angular typescript angular-material