Angular 在表单数组中禁用被动表单选择表单控件
我试图通过检查被动表单中的条件来禁用选择表单控件,但我无法在表单组件中动态执行该操作。想知道以前有没有人做过Angular 在表单数组中禁用被动表单选择表单控件,angular,angular-reactive-forms,angular-forms,form-control,formarray,Angular,Angular Reactive Forms,Angular Forms,Form Control,Formarray,我试图通过检查被动表单中的条件来禁用选择表单控件,但我无法在表单组件中动态执行该操作。想知道以前有没有人做过 let control = <FormArray>this.scheduleForm.controls.schedulingAvailability; this.scheduleObj.schedulingAvailability.forEach(x => { control.push(this.formBuilder.group({ day: x.day,
let control = <FormArray>this.scheduleForm.controls.schedulingAvailability;
this.scheduleObj.schedulingAvailability.forEach(x => {
control.push(this.formBuilder.group({
day: x.day,
startTime: x.startTime,
status: x.status
}))
if(x.status) {
this.scheduleForm.get('x.startTime').enable();
} else {
this.scheduleForm.get('x.startTime').disable();
}
})
let control=this.scheduleForm.controls.schedulingAvailability;
this.scheduleObj.schedulingAvailability.forEach(x=>{
控件。推送(this.formBuilder.group({
日:x日,
开始时间:x.startTime,
状态:x.status
}))
如果(x.status){
this.scheduleForm.get('x.startTime').enable();
}否则{
this.scheduleForm.get('x.startTime').disable();
}
})
在我的组件中,我将其设置如下
<div formArrayName="schedulingAvailability">
<div *ngFor="let d of scheduleForm.controls.schedulingAvailability.controls; let i=index">
<div formGroupName="{{i}}">
<div class="row">
<div class="col-md-1">
<label class="checkbox">
<input type="checkbox" formControlName="status">
<span class="checkbox__input"></span>
<span class="checkbox__label">{{ scheduleObj.schedulingAvailability[i].day }}</span>
</label>
</div>
<div class="col-md-2">
<div class="form-group__text select">
<select formControlName="startTime">
{{scheduleObj.schedulingAvailability[i].day}
没有像this.scheduleForm.get('x.startTime')这样的变量。
startTime
出现在formArrayschedulingAvailability
中。所以,您需要在迭代中访问formarray的当前索引。因此,您要做的是将forEach
改为for
循环,这样我们就可以获得迭代的当前索引:
let control=this.scheduleForm.controls.schedulingAvailability;
for(设i=0;i
编辑:由于该值可以被禁用,我们需要记住它不包含在表单值中。因此,如果您还想获得禁用的值,请使用
this.scheduleForm.getRawValue()
到底是什么问题?什么是我不能在表单组件中动态执行它。
的意思是什么?对不起,Alex,这是错误消息-core.es5.js:1020错误类型错误:无法读取null的属性“disable”