代码之家  ›  专栏  ›  技术社区  ›  Olena Horal

类型valueChanges不会为禁用的控件发出值

  •  17
  • Olena Horal  · 技术社区  · 7 年前

    我有一个角度反应形式。我订阅其值更改,并将向父组件发出更改。用户可能会禁用某些控件。问题是,当发出表单值更改时,禁用控件中的值丢失。我已经设定了一个基本 example .

    选中复选框并禁用电子邮件输入时,不会记录任何表单控制值。但我想得到所有的表单值。

    2 回复  |  直到 7 年前
        1
  •  32
  •   abahet    7 年前

    无论启用/禁用状态如何,都可以使用FormGroup的getRawValue()包含控件值。

    More information in the API documentation

    this.myForm.valueChanges.subscribe(() => {
        this.formValues =  JSON.stringify(this.myForm.getRawValue());
    });
    

    Here is the forked example

        2
  •  3
  •   Christian Benseler    7 年前

    将忽略禁用输入的值(尝试提交具有禁用输入的表单:不会发布)。

    您可以将其更改为“只读”

    <input formControlName="email" [readonly]="cb.checked">
    <input #cb type="checkbox" formControlName="toggleEmail">
    

    Updated example .