【问题标题】:Avoid undefined in TypedForms in Angular避免在 Angular 的 TypedForms 中未定义
【发布时间】:2022-08-13 21:35:46
【问题描述】:

我有以下代码:

  readonly form = new FormGroup({
    summary: new FormControl<string>(\'\', { nonNullable: true, validators: Validators.required }),
    description: new FormControl<string>(\'\', { nonNullable: true, validators: Validators.required }),
  });

我有一个包含两个必填字段的表单,并且可空值已关闭。 现在我有一个问题,如果我在每次使用和不使用!之前访问this.form.value.description,类型仍然是string | undefined而不是string

知道如何在无需检查每个属性的情况下实现这一目标吗?

    标签: angular


    【解决方案1】:

    您可以使用this.form.controls.description.value 而不是this.form.value.description

    【讨论】:

    • 问题是,我想使用this.form.value 作为函数或方法的参数,并且我想访问description。用this.form.control感觉不对。但我们找到了一种方法。 this.form.getRawValue() 是我们想要的。不太好,但现在可以使用。谢谢!
    【解决方案2】:

    @Eugene 提供的解决方案没有错,但我们找到了另一种方法。很难说它是否更好。

    而不是this.form.value,我使用this.form.getRawValue()

    this.form.value 中的属性可能未定义的原因是该控件可能被禁用。在这种情况下,不提供任何值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-16
      相关资源
      最近更新 更多