2015-09-29 12 views
10

私のアプリケーションでAngularJSと角度材料ライブラリを併用しています。 コントローラの機能にエラーが発生するたびに、特定のエラーが表示されず、毎回同じエラーが表示され、何が問題になったのかを判断することができないという問題があります。AngularJSはFirebugコンソールに特定のエラーを表示しません

これは私のコンソールに表示されるエラーです。

TypeError: href is null stackFrame.js (line 357) 
consoleLog/<() angular.js (line 12416) 
$ExceptionHandlerProvider/this.$get</<() angular.js (line 9203) 
processQueue() angular.js (line 14642) 
scheduleProcessQueue/<() angular.js (line 14650) 
$RootScopeProvider/this.$get</Scope.prototype.$eval() angular.js (line 15878) 
$RootScopeProvider/this.$get</Scope.prototype.$digest() angular.js (line 15689) 
$RootScopeProvider/this.$get</Scope.prototype.$apply() angular.js (line 15986) 
done() angular.js (line 10511) 
completeRequest() angular.js (line 10683) 
requestLoaded() angular.js (line 10624) 

ここにそのエラーのスクリーンショットがあります。 Error as shown in Firebug

PS:アプリケーションを遅延ロードするには、RequireJS JavaScriptライブラリを使用しています。私は自分のアプリケーションでui.routerも使用しています。

更新1: stackFrame.jsは、自分のアプリケーションのJavaScriptファイルではありません。

chrome://firebug/content/debugger/stack/stackFrame.js 

そして、それは常に私がアプリケーション内の別のエラーに直面した場合でも、任意のコントローラでの私のアプリケーション全体で同じ行に同じエラーを示していますstackFrame.jsの場所があります。

アップデート2:

Firebugの作品を無効に。 FirefoxとChromeのコンソールの特定のエラーが表示されます。 $http.post()の応答関数内にエラーがある場合、このタイプのエラーがFirebugに表示されることを追加したいと思います。さらなる事例のテスト。

アップデート3:

https://github.com/firebug/firebug/issues/7948を参照すると、この問題は放火犯2.0.13で解決されています。

+0

エラーは何が問題になったかを示します。stackFrame.js、行357、hrefがヌル、タイプエラーです。それはあなたを助けない? – dfsq

+0

stackFrame.jsは自分のアプリケーションのjsファイルではありません。アップデートをご覧ください。 –

+0

@MohitAdwani:ファイヤーバグを無効にしようとしましたか? – Shivi

答えて

1

AngularJsでカスタム例外処理を使用できます。 ($委譲が飾られているサービスを表しながら、addErrorは$ rootScope上のカスタムメソッドである)

app.config(function($provide){ 

    $provide.decorator("$exceptionHandler", function($delegate, $injector){ 
     return function(exception, cause){ 
      var $rootScope = $injector.get("$rootScope"); 
      $rootScope.addError({message:"Exception", reason:exception}); 
      $delegate(exception, cause); 
     }; 
    }); 

}); 

これは、コールがデフォルトの実装にフォールスルーを許可する前に、データバインディングのために$ rootScopeにすべてのエラーを送信します。

いくつかの共通ロジックをカプセル化するエラーサービス。

app.factory("errors", function($rootScope){ 
    return { 
     catch: function(message){ 
      return function(reason){ 
       $rootScope.addError({message: message, reason: reason}) 
      }; 
     } 
    }; 
}); 

エラー処理:

TestService.doWork().then()    
     .catch(errors.catch("Could not complete work!")); 
+0

答えをありがとう、ありがとう、私はこれが火かき棒で起こっている理由を知る必要があります。あなたが提案したことを実装していないし、実装するかもしれない。しかし、それは私が探している答えではありません。申し訳ありません –

+1

hrefがnullです。一部のサービスが適切な応答を得ていないか、またはng-repeatを使用している場合に、適切でないjson構造を使用している可能性があります。実装すると正確なエラーが発生します。 これにより、デバッグの時間が節約されます。 – Shrinath

+0

はい。私はこのエラーを$ http.postの応答関数の中に入れています。このエラーはFirebugでは曖昧に表示されますが、ブラウザのデフォルトのコンソールでは何が間違っているかを正確に示しています。これは火かき棒か何か完全に何らかのバグですか? –

5

これは明らかにFirebugのバグです。そのコード内の関連する行は、このいずれかになります。

https://github.com/firebug/firebug/blob/a389cf78b310aedf33531520cc11f1e05051ecc3/extension/content/firebug/debugger/stack/stackFrame.js#L357

あなたがこの固定を取得したい場合は、file a bug report for Firebug必要があります。

+0

私はすでにgithub repoに問題を提出しています。彼らの返事は何か見てみましょう。 –

+0

あなたはFirebug.ne​​xtリポジトリに[ファイルしました](https://github.com/firebug/firebug.ne​​xt/issues/413)、間違っています。 (これはFirebugの将来のメジャーバージョン用です)。[Firebugリポジトリ](https://github.com/firebug/firebug/issues)にファイルを作成する必要があります。また、問題では、このSOの質問を参照し、問題を再現できるように簡単なテストケースにあなたの問題を分解しようとする必要があります。 –

+0

申し訳ありません。それは知らなかった。私はそれを変更させてください。 –

関連する問題