Angular 5:将formControl验证状态设置为手动有效

时间:2018-01-10 18:03:33

标签: angular

我不知道这是我的代码还是默认行为。无论如何,我有一个控制权,有效期设定为今天或过去的日期。它运作良好。我的问题是针对特定情况,可以使用可接受的格式从ngOnInit填充元素。然而,表格仍然坚持认为它是无效的。我必须转到控件并手动输入系统生成的日期。

我该怎么做?

我尝试使用以下方法将其设置为有效:

  this.form.controls['date'].setErrors(null)

但是,它的值变为null(而不仅仅是错误),我仍然需要自己编写日期来传递它。

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:this.form.get('date').setErrors(null)

.get('date')将为您提供完整的FormControl

答案 1 :(得分:0)

this.form.get('date')。setErrors(null)效果很好,或者您可以简单地返回一个对象{dateError:true}。

但是请注意,如果您在自定义验证器中需要两个或多个formControl值,则必须将验证器初始化放在formGroup中,而不是在formControl中。

private setFormgroup(){
   this.myFormGroup = this.formbuilder.group({
          name: [name, { validators: Validators.required }],
          price: [price, { validators: [singleValueCustomValidator] }],

          { validators: this.multiValueCustomValidator });
  }

有关完整示例,请参见本文。 https://medium.com/@monir.khan.developer/angular-10-custom-form-validation-example-reactive-forms-3f5432a21fff