Winkel 2 aktualisiert die Ansicht nicht, nachdem die Ausnahme ausgelöst wurde

9

Wenn eine Ausnahme vom Exception-Handler von Angular 2 abgefangen wird, "aktualisiert" sich die Benutzeroberfläche nicht mehr. Ich habe hier ein sehr einfaches Beispiel:

Zypern

%Vor%

Die Schaltfläche Do It dreht den booleschen Wert um, der sich im interpolierten Wert in der Vorlage widerspiegelt. Sobald jedoch die Schaltfläche "Break It" gedrückt wird (wodurch ein Fehler ausgelöst wird), wird der interpolierte Wert nicht mehr aktualisiert, wenn die Schaltfläche "Do it" gedrückt wird. Die Konsole protokolliert jedoch weiterhin die Nachrichten "Doing it".

Das Problem, mit dem ich es zu tun habe, ist, dass ich einen benutzerdefinierten Exception-Handler erstellen möchte, der den Benutzer warnt und möglicherweise etwas Arbeit macht, um ein Formular zu löschen, wenn etwas schief gelaufen ist Fehler auf einer Schaltfläche klicken, um es zu testen, stoppen alle UI-Updates. Schaltflächen funktionieren jedoch weiterhin, was bedeutet, dass alle Schaltflächen, die Anforderungen anfordern, dies tun, wenn sich das Formular in einem guten Zustand befindet. Die Benutzeroberfläche hat jedoch aufgehört zu aktualisieren und informiert den Benutzer, was passiert.

Ich bin mir nicht sicher, ob das ein Problem mit Zonen oder etwas anderem ist, aber das Versuchen eines NgZone.run () schien das Problem für mich nicht zu lösen. Wenn ein Fehler die Benutzeroberfläche einer Komponente beschädigen soll, was ist der richtige Ansatz für mein Problem?

    
Bernard Ng 15.06.2016, 12:58
quelle

2 Antworten

3

Seit eckig 4.1.1 (2017-05-04) Ссылка

  

fix (core): Stoppen Sie die Änderungserkennung nicht aufgrund von Fehlern

     
  • verhindert das Abmelden von der Zone bei einem Fehler
  •   
  • verhindert das Abmelden von der Direktive EventEmitter s bei Fehler
  •   
  • verhindert das Trennen von Ansichten im Dev-Modus, wenn dort ein Fehler auftritt
  •   
  • stellt sicher, dass ngOnInit nur 1x aufgerufen wird (auch im Prod-Modus)
  •   

sollte ohne zusätzlichen Code funktionieren

%Vor%

Plunker-Beispiel

    
yurzui 05.05.2017 04:37
quelle
1

Verlassen Sie sich nicht auf die Codeausführung, nachdem ein nicht behandeltes Exception passiert ist. Sie müssen die Ausnahme an der Stelle behandeln, an der Sie dies erwarten.

Fehlerbehandlung: Ссылка

    
Andrei Zhytkevich 15.06.2016 13:07
quelle

Tags und Links