我正在使用Angular反应形式。在我的页面上,我需要有选择地启用/禁用字段(当前密码和新密码+确认),以便可以使用form.value
并仅获取我需要的那些内容(禁用的控件将不在其中)。但是,我发现了禁用FormControl
的方法,但是,我需要禁用整个组。
那是我的小组
formGroup: FormGroup = this.fb.group({
...
password: this.fb.group({
current: ['', Validators.required],
new: this.fb.group({
password: [{
value: '',
disabled: this.changePassword.value
}, Validators.required],
passwordConfirm: [{
value: '',
disabled: this.changePassword.value
}, Validators.required]
}, {validator: PasswordValidator.MatchPassword})
})
});
这实际上不起作用。如何通过将禁用状态附加到独立的FormControl(复选框)来禁用整个password
FormGroup。
答案 0 :(得分:1)
you can open fieldset
tag inside the form
tag and use disable
directive according to the form control value
<fieldset [disabled]="changePassword">
答案 1 :(得分:0)
Solved by
ngOnInit() {
this.formGroup.get('password').enable();
// changePassword: FormControl
this.changePassword.valueChanges.subscribe(e => {
if (!this.changePassword.value) {
this.formGroup.get('password').disable();
} else {
this.formGroup.get('password').enable();
}
});
}