2017-03-27 3 views
5

Wenn in Winkel 2 ein Vorlagenfehler auftritt, funktioniert die gesamte Anwendung nicht.Wie behandelt man Vorlagenfehler (und andere Fehler) in Winkel 2?

Sollte nicht nur die Komponente mit der Vorlage, die den Fehler verursacht hat, nicht funktionieren und der Rest der Anwendung funktioniert einwandfrei?

Wie werden Fehler behandelt, damit die Anwendung nicht reagiert, wenn ein Fehler auftritt?

+3

Sie sollen sie beheben und nicht Code mit Fehlern liefern (: Es ist eine gute Sache, dass App fehlschlägt. Sie können jedoch benutzerdefinierte [ErrorHandler] verwenden (https://angular.io/docs/ts/ neustes/api/core/index/ErrorHandler-class.html) ... – Sasxa

+1

Mit dem gleichen Problem konfrontiert, aber scheint keine Reparatur um Vorlage Analysefehler. @ Harryjohn haben Sie irgendeine Lösung um diese ?? – Kanchan

Antwort

4

können Sie benutzerdefinierte ErrorHandler verwenden:

class MyErrorHandler implements ErrorHandler { 
    handleError(error) { 
    // do something with the exception 
    } 
} 
@NgModule({ 
    providers: [{provide: ErrorHandler, useClass: MyErrorHandler}] 
}) 
class MyModule {} 
+0

Große Antwort, aber wenn diese Klasse Anrufe? auf Last der App? oder auf einer bestimmten Komponente?, sollte ich dies im Hauptmodul aufgerufen?, bitte ein bisschen mehr Erklärung, wenn Sie können. Danke –

+0

@PardeepJain Es ist ein Root-Provider, also sollte es für die gesamte App funktionieren. Ich weiß nicht, was passiert, wenn Sie mehr als einen ErrorHandler mit Lazy-Loaded-Modulen und deren Injektor haben.Ich habe nur zwei davon geschrieben: einen für eine echte App, die Fehler in Firebase speichert, und zweitens, um diese nervige Zone exceptio zu stoppen ns beim Servieren mit HMR und Styling. Aber beide sind genau wie dieses Beispiel, mit Provider auf 'AppModule' Ebene. Ich habe es nicht weiter erforscht ... – Sasxa

+0

okay vielen Dank für Info, eine Sache mehr ich versuchte dieses aber werfen etwas Fehler, wissen nicht, was der Grund ist, sollte ich Seprate Modul für ErrorHandler verursachen müssen? oder einfach in appModule importieren, wie du es in der Antwort getan hast? –

-1

verwenden? mark ist eine Lösung um diese herum und bindet eine Objekt/Array-Eigenschaft an die Vorlage.

Suchen Sie nach der konsolidierteren Lösung, bei der wir Vorlagenbindungsfehler verarbeiten können, wenn ein riesiges Datenobjekt von der API kommt und hinzugefügt wird? für jede Eigenschaft in keine stabile und langwierige Lösung.