【问题标题】:How would I get all errors from a form group in angular 2?如何从角度 2 的表单组中获取所有错误?
【发布时间】:2017-04-01 09:45:14
【问题描述】:

如果我像这样构建一个表单组:

    this.passWordForm = this._formBuilder.group({
        "previous_password": [this.changePassword.previous_password, Validators.compose([Validators.required])],
        "new_password": [this.changePassword.new_password, Validators.compose([Validators.required,PasswordValidator.validate])],
    });

如何从表单组中获取所有错误?我一直在做的是这样的:

<form role="form" [formGroup]="passWordForm" novalidate (ngSubmit)="submitChangePassword()">
<input [(ngModel)]="changePassword.previous_password" formControlName="previous_password" name="previous_password" type="password" placeholder="Previous Password" class="form-control" required>
<input formControlName="new_password" [(ngModel)]="changePassword.new_password" name="new_password" type="password" placeholder="New Password" class="form-control" required>
<div *ngIf="passWordForm.invalid === true && passWordForm.controls['new_password'].errors">
    <div *ngFor="let line of passWordForm.controls['new_password'].errors.message" class="alert alert-danger">{{line}}</div>
</div>
<div *ngIf="passWordForm.invalid === true && passWordForm.controls['previous_password'].errors">
    <div class="alert alert-danger">{{passWordForm.controls['previous_password'].errors.message}}</div>
</div>
</form>

我希望 passWordForm.errors 会返回一个串联列表,但它始终为空,即使 passWordForm.invalid === true 时也是如此

【问题讨论】:

标签: angular2-forms


【解决方案1】:

我认为唯一的方法是通过执行 passwordForm.valid 来了解表单是否有效,然后遍历 Controls 对象并查找单个表单元素的错误。

【讨论】:

猜你喜欢
  • 2020-03-11
  • 2016-10-28
  • 2019-03-09
  • 1970-01-01
  • 2017-09-13
  • 2017-10-15
  • 2019-08-14
  • 2017-10-08
  • 1970-01-01
相关资源
最近更新 更多