Angular中使用FormBuilder构建响应式表单时如何设置disabled属性
在FormBuilder的控件配置数组中,第一个位置的参数和FormControl构造函数的第一个入参完全兼容,你直接把包含value和disabled属性的配置对象放在这个位置即可实现和原写法一致的禁用效果。
修正后的完整代码如下:
this.myForm = this.fb.group({ name: [this.item.name, Validators.required], active: [this.item.active], value: [{ value: this.item.value, disabled: !this.item.active }, this.item.active ? Validators.required : null] }, {validators: customValidator()});
补充注意:上述写法仅会在表单初始化时设置一次value控件的禁用状态和验证规则,如果你需要在active字段切换状态时联动更新,可以给active控件添加valueChanges订阅,动态调用enable()/disable()方法调整value控件状态,同时更新对应验证规则。
内容的提问来源于stack exchange,提问作者YSFKBDY
相关产品推荐
相关产品推荐

