如何使用 Angular *ngIf 监听 400(错误请求)?

How to listen the 400 (Bad Request) with Angular *ngIf?

我不会粘贴任何代码,因为这是一个一般性问题。如果什么都没有,我需要弄清楚如何倾听 returns。我无法得到任何对象,因为什么都不存在。我只收到 GET 请求消息“400 (Bad Request)”。(控制台)。

如果有“400 (Bad Request)”(不存在),如何禁用按钮?

有没有办法在前端收听这个?

谢谢

在 Angular2 中,您需要从响应中捕获错误。

badRequest: boolean = false;

this.appService.myHttpCall.subscribe(
   data =>  // do something with success,
   error => {
       if(error.status == 400){
          this.badRequest = true;
       }
   });

并在您的模板中使用结果。如果你真的想走 *ngIf 路线,你可以这样做:

<button *ngIf="badRequest" type="button" disabled>My Button</button>
<button *ngIf="!badRequest" type="button">My Button</button>

您基本上必须编写两个按钮,都使用 *ngIf 语句来获得您想要的结果。

如果您想使用 [disabled] 属性,您可以这样做:

<button [disabled]="badRequest" type="button">My Button</button>

但是,如果出现 BadRequest,我不会禁用按钮,因为那样用户在正确填写表单后将如何重新提交表单?例如,如果用户将必填字段留空,服务器 returns 一个 BadRequest 并禁用该按钮。然后用户无法更正缺失的字段并重新提交表单。

我要做的是根据表单的有效性切换按钮的 disabled 属性,如下所示:

<form (ngSubmit)="onSubmit()" #myForm="ngForm">

   ...inputs....    

    <button type="submit" class="btn btn-success" [disabled]="!myForm.valid">SUBMIT</button>

</form>

希望这对您有所帮助。