Angular 2验证程序错误

时间:2018-11-29 15:52:45

标签: angular forms reactive

我正在尝试验证密码是否足够长,但是它发送此错误。 我正在验证电子邮件的相同方式,但没有任何问题..

ngOnInit() {
    this.registerForm = this.fb.group({
       username: ['', Validators.required],
       email: ['', [Validators.required,
           Validators.pattern('[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$')]],
        password: ['', Validators.required, Validators.minLength(4)],
        confirmpwd: ['', Validators.required, Validators.minLength(4)],
        birthday: ['', Validators.required]
    });
  }

ERROR Error: Expected validator to return Promise or Observable.

<div *ngIf="password.invalid && password.touched">
          <p *ngIf="password.errors?.required">
               Choose a password
          </p>
          <p *ngIf="password.errors?.minlength">
               The password is too short
          </p>
</div>

1 个答案:

答案 0 :(得分:2)

更改此:

password: ['', Validators.required, Validators.minLength(4)],

对此:

password: ['', [Validators.required, Validators.minLength(4)]],

将验证器添加到数组。

  • 数组中的第一个元素是默认元素。
  • 数组的第二个元素是单个验证器或验证器数组。
  • 数组的第三个元素是单个异步验证器或异步验证器数组。

因此,您列出的第二个验证器被当作异步验证器处理。

您还需要对其他formControl进行此更改。 (该电子邮件实际上是正确的。)