AngularJS 1.3 シングル ページ アプリ コンポーネントを含む MVC 5.0 Web プロジェクトがあります。未処理の角度例外が発生した場合に MVC コントローラーにポストバックしたいので、次のように$exceptionHandler ファクトリをオーバーライドしています。
mod.factory('$exceptionHandler', ['$http', function($http) {
return function(exception, cause) {
console.log(exception.message);
$http.post("Application/CatchAngularError", {
exception: exception,
cause: cause
});
}
}]);
Chrome では、Javascript コンソールが「Uncaught Error: [$injector:cdep] http://errors.angularjs.org/1.3.0/ $injector/cdep?p0=%24rootScope%20%3C-%20%24http% 」を報告します。このスクリプトを含むページを読み込むと、20%3C-%20%24exceptionHandler%20%3C-%20%24rootScope" というメッセージが表示されます。明らかに、$http は既に $exceptionHandler に依存しているため、$exceptionHandler に $http への依存関係を与えることはできません。これにより、循環依存関係が作成されるためです。
私は jQuery.ajax を使用できると思いますが、より角度のあるソリューションが存在する場合はそれを好むでしょう。持ってる人いる?