【问题标题】:Angular form invalid with valid controls使用有效控件的角度形式无效
【发布时间】:2020-04-29 21:15:26
【问题描述】:

我正在使用现有值创建一个来自组:

this.form = new FormGroup({
  field1: new FormControl(
    {
      value: obj ? obj.value : null,
      disabled: obj
    },
    Validators.required
  ),
  field2: new FormControl(
    {
      value: obj ? obj.value : null,
      disabled: obj
    },
    Validators.required
  )
});

转载:https://stackblitz.com/edit/angular-aadkss

我希望它在 obj 存在时填充值,有效和禁用,但它正在填充值,被禁用和无效,无效。我怎样才能使它有效?

【问题讨论】:

    标签: angular typescript angular-forms


    【解决方案1】:

    这是不可能的,.valid.disabled的值取决于控件的.status的值,它只能有一个值,见https://github.com/angular/angular/blob/f27deea003822ed46437e74f102b281f692b7811/packages/forms/src/model.ts#L191

    /**
      * The validation status of the control. There are four possible
      * validation status values:
      *
      * * **VALID**: This control has passed all validation checks.
      * * **INVALID**: This control has failed at least one validation check.
      * * **PENDING**: This control is in the midst of conducting a validation check.
      * * **DISABLED**: This control is exempt from validation checks.
      *
      * These status values are mutually exclusive, so a control cannot be
      * both valid AND invalid or invalid AND disabled.
      */
    public readonly status!: string;
    

    【讨论】:

    • 谢谢,但在这种特定情况下,我需要它成为可能,我必须找到一种解决方法,进行自己的验证并在我拥有 obj 时忽略表单验证。
    【解决方案2】:

    你能把它放到一个堆栈闪电战中吗?以便我们能够理解您的确切意思?

    【讨论】:

      猜你喜欢
      • 2020-11-24
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      • 2023-03-06
      • 1970-01-01
      • 2017-02-08
      相关资源
      最近更新 更多