2016-11-17 58 views
1

如果我建一个表单组这样的:如何从角度2中的表单组中获取所有错误?

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

+0

的[从角2 FormGroup所有验证错误(https://stackoverflow.com/questions/40680321/get-all-validation-errors-from-angular-2-formgroup) –

回答

1

,我认为是唯一的方式知道如果表单通过执行passwordForm.valid,然后迭代Controls对象并查找单个表单元素的错误,该方法是有效的。

+0

什么'passwordForm可能的复制.errors'代表? – smartmouse

+0

@smartmouse对不起,我无法回答。我也有同样的问题。 [链接](https://github.com/angular/angular/issues/10530)这个链接有一些关于这个问题的讨论。 – praveen

相关问题