角反应形式残疾组

时间:2018-12-03 12:41:50

标签: angular reactive-forms

我正在使用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。

2 个答案:

答案 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();
            }
        });
    }