我有一个这样创建的FormGroup:
格式:FormGroup;
构造函数(私有_formBuilder:formBuilder){}
this.form=this.\u formBuilder.group({
名称:['',验证器。必需],
电子邮件:['',Validators.required,Validators.email]
});
当事件发生时,我想禁用这些输入,因此,在我添加的HTML中:
<;输入class=“form control”placeholder=“Name”Name=“Name”formControlName=“Name”[(ngModel)]=“Name”autocomplete=“off”[禁用]=“isDisabled”必填项>;
<;输入class=“form control”placeholder=“Email”name=“Email”formControlName=“Email”[(ngModel)]=“Email”Email=“true”autocomplete=“off”[disabled]=“isDisabled”必填项>;
其中,isDisabled是一个变量,当所述事件发生时,我切换到true。
正如你所能想象的,我得到的信息是:
看起来您正在将disabled属性用于被动表单
指令。如果将“禁用”设置为true
在组件类中设置此控件时,实际上会在DOM中为
你我们建议使用此方法来避免“检查后更改”错误示例: 表单=新表单组({ 第一个:newformcontrol({value:'Nancy',disabled:true},Validators.required), 最后:新FormControl('Drew',Validators.required) });
因此,在这个警告显示的示例中,经过一点搜索,我发现我应该声明我的控件,如下所示:
名称:[{value:'',已禁用:this.isDisabled},验证器。必需]
问题是:当变量在true/false
在启用或禁用输入时,变量控制的正确方法是什么
我不想手动执行(例如:this.form.controls['name'].disable()),因为这似乎不是一种非常被动的方式,我必须在大量方法中调用它。可能不是一个好的做法
Thx
您可以将变量的赋值更改为setter方法,以便:
设置为禁用(值:布尔值){
此。_isDisabled=值;
如果(值){
this.form.controls['name'].disable();
}否则{
this.form.controls['name'].enable();
}
}