2012-11-01 9 views
64

ブラウザにangeljsアプリケーションをロードする際に、これをデバッグする方法はありますか?

ie。私は現在のアプリケーションの$rootScopeを取得したいと思います。どうすればいい?

答えて

70

1のようなあなたのコントローラに注入する必要があります要素をDOM内の次の要素をコンソールから実行することによって、DOM内の要素を削除します。

angular.element(DOMNODE).scope() 

DOMNODEは、コースは、DOMノードへの参照です。

たとえば、Chromeで要素タブでは、ng-appディレクティブがあるノードを選択することができ、および開発者コンソールで

angular.element($0).scope() 
+10

+1選択したdivのChromeの$ 0の場合。前に選択した要素に$ 1、$ 2を使用することもできます。 –

+1

$ 0もSafariのWebInspectorで動作します。 – mikker

+6

同じセレクタを使って 'ng-app'要素を選択し、' var $ rootScope = angle.element($ 0).injector()。get( '$ rootScope') 'を実行してそれを再生できます。 – maxdec

14

Batarang - AngularJS

のためのGoogle Chromeのプラグインあなたがこれをインストールした後、あなたは

はconsole.log($ rootScope)を行うことができます。

クロムコンソールのスコープオブジェクトを確認してください。あなたは$ rootScopeを取得したい場合

ところで、あなたはどのからスコープを得ることができ、

またBatarangため

app.controller('MainCtrl', function($scope, $rootScope) { 

} 
30

でルートスコープを取得

$rootScope = angular.element(document).scope() 
これを試してみてください
2

デベロッパーツールのelemeで選択された要素の範囲を自動的に検査する "Angular Scope Inspector"(current store url)と呼ばれる無料のChrome拡張機能が追加されました。あなたのソース開発デベロッパーコンソールタイプangular.element('body').scope();で[ツール] - > [ソース

$rootScope

3

、NTSタブ

を私はちょうど今日それを発見し、それは非常に便利ですあなたのアプリの場合<body data-ng-app="SomeApp">

0

で$ rootScopeを見ることができますIMO

関連する問題