Angular2如何从后端显示错误消息

时间:2017-05-17 19:02:49

标签: laravel angular lumen

我想在引导警报中显示错误消息。我使用angular2作为我的前端和流明作为我的后端。

前端

<div class="alert alert-danger"> 
    // Display error message here 
</div>

我希望前端显示的验证功能的响应

public function uploadImage(Request $request)
{
    $this->validate($request, [

        'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:60000',

    ]);
}

component.ts

uploadFile(): void {

let file = this.fileInput.nativeElement;
if (file.files && file.files[0]) {
  let fileToUpload = file.files[0];
  this.getInfoService
    .uploadImage(fileToUpload)
    .subscribe(
      data => console.log("DATA", data),
      err => console.log(err),
      () => console.log("()",'yay')
    );
}

}

在我的服务中

uploadImage(fileToUpload: any) {

let input = new FormData();
input.append("image", fileToUpload);
return this.http.post('http://Api.app/api/v1/uploadImage', input)
  .map(
    (response: Response) => {
      console.log("Upload img service", response);
    }
  );

}

回复

What the response looks like

2 个答案:

答案 0 :(得分:4)

我会将错误消息(如果返回一个)设置为等于角度变量,然后检查该变量是否存在以决定是否显示它。

UITextView

成分:

textView.textContainerInset = UIEdgeInsets(top: 0.0, left: 0.0,
                                           bottom: 50.0, right: 0.0)

要正确显示所有消息,您可能需要遍历JSON响应并连接字符串,或将单个消息作为<div *ngIf="errors" class="alert alert-danger"> {{ errors }} </div> 元素添加到无序列表中。

答案 1 :(得分:0)

在您的http请求中,您必须添加一个catch,如下所示:

uploadImage(fileToUpload: any) {

let input = new FormData();
input.append("image", fileToUpload);
return this.http.post('http://Api.app/api/v1/uploadImage', input)
  .map(
    (response: Response) => {
      console.log("Upload img service", response);
    })
  .catch(this.handleError);
}

然后添加handleError函数:

private handleError(error: any) {
    let errMsg = (error.message) ? error.message :
        error.status ? `${error.status} - ${error.statusText}` : 'Server error';
    console.error(errMsg); // log to console instead
    return Observable.of(error);
}

这个handleError函数会从服务器端返回整个响应。您可以轻松地从响应正文中提取错误消息并将其分配给变量。

然后,您可以使用插值在引导警报中显示错误消息。