2017-02-14 2 views
2

catch()メソッドで.subscribe()メソッドを使用するときに例外をキャッチできますが、これはサービスコールベースで行われます。ページ内の任意の場所で発生した例外をキャッチしてビューに表示する方法はありますか?Angular2 - 例外をキャッチしてエラーメッセージを表示する

例外をキャッチしてコンソールに表示するのは簡単ですが、フリーズするのではなく有用なエラーメッセージを表示するには、ビューに何かを表示する必要があります。

おかげ

+0

あなたは[window.onerror](httpsを使用することができます。 org/en-US/docs/Web/API/GlobalEventHandlers/onerror)を使用してページ上のすべての例外に反応しますが、これは良い考えではありません... – AngularChef

答えて

2

あなたは、モジュール内のグローバルエラーハンドラをオーバーライドすることができます。

https://angular.io/docs/ts/latest/api/core/index/ErrorHandler-class.htmlカスタムエラーダイアログやエラーメッセージの

import { NgModule, ErrorHandler } from '@angular/core'; 

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

が、私はできるカスタムErrorLogServiceを作成しますエラーイベントをサブスクライブするコンポーネント。エラーを表示するコンポーネントは、エラーイベントをサブスクライブし、エラーメッセージを表示するか、エラーダイアログをポップアップします。

は、(パターンが重要である - 関与していない特定のクラス)、これを行うためにフラックスを使用する方法については、この回答を参照してください://developer.mozilla: How can I maintain the state of dialog box with progress all over my Angular 2 application?

関連する問題