如果未选中父级(角度),如何取消选中子表单组值?

时间:2019-03-29 16:16:29

标签: angular

我有一个带有两个复选框的反应式表单组。如果未选中pacct复选框,如何取消选中支持复选框?

    this.userForm = this.fb.group({
        phone: [this.data.phoneContact.data, [Validators.required, Validators.pattern('^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$')]],
        paiosfg: this.fb.group({
            pacct: [this.data.pAccountId > 0],
            support: [this.data.isSupportLic]
        }),
});

HTML

...
<div formGroupName="paiosfg">
    <mat-checkbox formControlName="pacct">PACCT</mat-checkbox>
    <mat-checkbox style="margin-left: 40px;" formControlName="support">support license</mat-checkbox>
</div>
...

2 个答案:

答案 0 :(得分:0)

我不确定您想何时重置什么。但是您可以只使用Form.reset()方法。要重置表单的所有字段,请执行以下操作:

this.myform.reset();

要重置表单的指定字段,请执行以下操作:

this.myform.controls['FIELD_NAME'].reset();

答案 1 :(得分:0)

你在这里

this.userForm.get('pacct').valueChanges.pipe(
    filter((value: boolean) => !value) // continue only if 'pacct' unchecked
).subscribe((value: boolean) =>
   this.userForm.get('support').setValue(value); // update value of 'support'
)