Angular 2:FormGroup:如何显示自定义错误消息

Vin*_*oft 5 forms angular

我正在使用 Angular4 构建前端。如果用户提交了错误的表单,则应显示错误消息。

目前,我的错误处理如下所示:

// This code is run when a response from the server is received
if ('error' in server_response) {
    for (let key in server_response.error {
      this.form.controls[key].setErrors({'error': true});
      let error_message_from_server = server_response.error[key];
    }
}
Run Code Online (Sandbox Code Playgroud)

我如何在 HTML 中显示错误:

<span class="error" *ngIf="field.invalid">Error: {{field.errors.error}} <br></span>
Run Code Online (Sandbox Code Playgroud)

目前field.invalid当收到错误时变为真,但field.errors.error在空字符串中。

问题:如何设置field.errors.error消息?这个消息应该是字符串error_message_from_server

请注意,不能通过在 HTML 代码中使用 if 语句来解决此问题。潜在错误的数量以数百计。

Jor*_*ngh 3

this.form.controls[key].setErrors({'error': true});// 键是错误,值是布尔值而不是字符串

尝试设置字符串类型值

for (let key in server_response.error {
  this.form.controls[key].setErrors({'error': erver_response.error[key]});
//Calling `setErrors` will also update the validity of the parent control.
}
Run Code Online (Sandbox Code Playgroud)