Raygun ロギングを AngularJS アプリケーションに追加するエラー ロギング モジュールを作成しています。標準的な方法は、次の$exceptionHandler
ようにデコレータを登録することです。
$provide.decorator("$exceptionHandler", ['$delegate', function($delegate) {
return function (exception, cause) {
Raygun.send(exception);
$delegate(exception, cause);
}
}])
ただし、DI フレームワークが最初に読み込まれる前にデコレータをインストールする必要があるという点で、これには順序依存性があります$exceptionHandler
。このコードをモジュールにラップすると、順序の依存性はさらに明白ではなくなり、クライアントが間違った順序で物事を初期化しやすくなり、Raygun.send
呼び出されない理由がわかりません。(私は 1 日半そのクライアントでした。弁明しますが、Angular を使用したのはこれが初めてです。)
Angular の DI フレームワークにエラー ログ モジュールをロードするよう説得したいと思います$exceptionHandler
。モジュールを の依存関係として登録しようと考えました$exceptionHandler
が、まだその方法を理解できていません。また$exceptionHandler
、コードに依存していることは実際には真実ではありません。私が見逃しているこれを行うための慣用的な方法はありますか?