我可以使用 ngxErrors 或类似的东西来显示表单错误吗?
Can i use ngxErrors or something like it to display a form error?
我使用 ngxErrors 显示表单控件的错误,效果很好。有没有办法为表单或表单组获得类似的功能?目前,我显示这样的表单错误:
<div *ngIf="form.hasError('loginFailed')">
Login Failed
</div>
不幸的是,当我检测到表单错误(例如,在提交登录表单后)而不是控制错误时,我将其设置为:
this.form.setErrors({ loginFailed: true });
this.cdr.detectChanges();
其中 this.cdr 是 ChangeDetectorRef 的实例。这是必要的,因为我正在使用 OnPush 更改检测策略。所以基本上这就像从 AngularJS 重新调用 $scope.$apply() 一样。
我真正想做的是更像 ngxErrors 的做法:
<div ngxErrors="myForm">
<div ngxError="loginFailed" [when]="['dirty', 'touched']">
The login has failed
</div>
但是 ngxErrors 期望 myForm 是一个控件。
此功能目前未纳入 ngxErrors,但我提交了 PR。 https://github.com/UltimateAngular/ngxerrors/pull/18
工作语法是对上面的稍作修改:
<div ngxErrors>
<div ngxError="loginFailed" [when]="['dirty', 'touched']">
The login has failed
</div>
</div>
我了解到您不必告诉子组件表单,FormGroupDirective 会自动供子组件使用。
查看此库 https://www.npmjs.com/package/ng-error-messages 以根据验证规则显示错误消息:
<input placeholder="Texto:" formControlName="text">
<div errorMessage="text" alias="Super Texto" ></div>
我使用 ngxErrors 显示表单控件的错误,效果很好。有没有办法为表单或表单组获得类似的功能?目前,我显示这样的表单错误:
<div *ngIf="form.hasError('loginFailed')">
Login Failed
</div>
不幸的是,当我检测到表单错误(例如,在提交登录表单后)而不是控制错误时,我将其设置为:
this.form.setErrors({ loginFailed: true });
this.cdr.detectChanges();
其中 this.cdr 是 ChangeDetectorRef 的实例。这是必要的,因为我正在使用 OnPush 更改检测策略。所以基本上这就像从 AngularJS 重新调用 $scope.$apply() 一样。
我真正想做的是更像 ngxErrors 的做法:
<div ngxErrors="myForm">
<div ngxError="loginFailed" [when]="['dirty', 'touched']">
The login has failed
</div>
但是 ngxErrors 期望 myForm 是一个控件。
此功能目前未纳入 ngxErrors,但我提交了 PR。 https://github.com/UltimateAngular/ngxerrors/pull/18
工作语法是对上面的稍作修改:
<div ngxErrors>
<div ngxError="loginFailed" [when]="['dirty', 'touched']">
The login has failed
</div>
</div>
我了解到您不必告诉子组件表单,FormGroupDirective 会自动供子组件使用。
查看此库 https://www.npmjs.com/package/ng-error-messages 以根据验证规则显示错误消息:
<input placeholder="Texto:" formControlName="text">
<div errorMessage="text" alias="Super Texto" ></div>