Ich benutze Angular 2.4.9 und haben eine benutzerdefinierte Fehlerbehandlung implementiert, die nur alle Fehler abfängt und navigiert zu einer Fehlerroute, um die Nachricht anzuzeigen.Angular/Angular2 Datenbindung funktioniert nicht nach Abfangen von Javascript Fehler mit benutzerdefinierten Fehlerhandler
Ich habe einen Umschaltknopf, um eine detaillierte Nachricht anzuzeigen/zu verbergen, die an einen booleschen Wert gebunden ist (auch versucht ein boolean in einem Objekt, z. B. object.showError) Alles funktioniert korrekt, wenn ich Http-Fehler abfangen und einen Fehler selbst werfen. Wenn ich jedoch einen Winkelfehler wie ViewWrappedError erhalte, weigert sich die Datenbindung, zu arbeiten. (click) evets funktioniert immer noch und der Boolesche Wert wird von true in false umgestellt, nur die Änderungen werden nicht auf der Seite angezeigt.
Fehle ich etwas, um das zu funktionieren?
import { Component } from '@angular/core';
import { ErrorService } from './error.service';
import { Error } from './index';
@Component({
moduleId: module.id,
selector: 'error',
templateUrl: 'error.component.html',
styleUrls: ['error.component.css']
})
export class ErrorComponent {
public error: Error;
public showDetailedError: boolean;
constructor(private errorService: ErrorService) {
this.showDetailedError = false;
this.error = this.errorService.getError();
}
}
HTML-Vorlage
<div class="error-container">
<h1>Sorry, something went wrong.</h1>
<p class="error-message">An error occurred while processing your request. Details on this error can be found below.</p>
</div>
<p *ngIf="!showDetailedError" (click)="showDetailedError = !showDetailedError" class="info-icon">Click for detailed description</p>
</div>
Arbeitete für mich. Ich habe den ApplicationRef in meine Komponente eingefügt und die Änderungserkennung manuell ausgelöst, wenn ich meinen detaillierten Fehler umschaltete. –
Danke für das Feedback - gut zu wissen. –