2017-03-06 3 views
1

Ich werde keinen Code einfügen, da dies eine allgemeine Frage ist. Ich muss herausfinden, wie man zuhört, wenn nichts zurückkommt. Ich kann keine Gegenstände bekommen, da nichts existiert. Ich erhalte nur auf meine GET Anfrage eine Nachricht "400 (Bad Request)". (Konsole).Wie höre ich die 400 (schlechte Anfrage) mit Angular * ngIf?

Wie kann ich eine Schaltfläche deaktivieren, wenn eine "400 (Bad Request)" (nichts existiert)?

Gibt es eine Möglichkeit, dies am Frontend zu hören?

Dank

+0

Da Sie keinen Code bereitstellen, ist es schwer zu helfen. http.get (...). Map (...). Subscribe (res => {...}, err => {console.log (err.status)}); // würde 400 in der Konsole schreiben. – Ploppy

+0

Von hier aus können Sie alles tun, was Sie wollen. – Ploppy

+0

geben Sie mir bitte eine Sekunde :) –

Antwort

1

In Angular2 Sie den Fehler aus der Antwort erfassen müßten.

badRequest: boolean = false; 

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

Und verwenden Sie das Ergebnis in Ihrer Vorlage. Wenn Sie wirklich den *ngIf Weg gehen wollen, würden Sie dies tun:

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

Sie würden im Wesentlichen zwei Tasten codieren, beide mit *ngIf Aussagen das gewünschte Ergebnis zu erhalten.

Wenn Sie die [disabled] verwenden möchten Attribut Sie das tun würde:

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

Allerdings würde ich nicht auf eine Schaltfläche, wenn ein BadRequest passiert, deaktiviert, weil dann, wie würde der Benutzer das Formular erneut einreichen, nachdem es richtig füllen aus? Wenn der Benutzer beispielsweise ein erforderliches Feld leer lässt, gibt der Server eine BadRequest zurück und deaktiviert die Schaltfläche. Dann kann der Benutzer das fehlende Feld nicht korrigieren und das Formular erneut senden.

Was würde ich stattdessen tun ist die Schaltfläche des disabled Attribut basierend auf der Gültigkeit der Form wie folgt zu wechseln:

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

    ...inputs....  

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

</form> 

Hoffnung, das hilft.

+0

Danke. Es ist keine Form, also funktioniert [deaktiviert] perfekt. –

+0

Großartig. Froh, dass es für dich funktioniert hat. Entschuldigung, ich habe nur die Annahme gemacht, dass es ein Formular ist. –

+0

Es funktioniert immer noch nicht beim Laden der Seite, nur wenn ich auf den Button klicke verschwindet es. Wie kann ich die Seitenladung abhören? Reines Javascript oder? –