admin管理员组

文章数量:1136511

Is there a way of debugging the angularjs application when it is loaded in the browser?

ie. I wish to get the $rootScope of my current application. How would I do that?

Is there a way of debugging the angularjs application when it is loaded in the browser?

ie. I wish to get the $rootScope of my current application. How would I do that?

Share Improve this question edited Dec 18, 2015 at 11:02 Divya MV 2,0533 gold badges33 silver badges57 bronze badges asked Nov 1, 2012 at 3:54 zcaudatezcaudate 14.3k7 gold badges67 silver badges134 bronze badges
Add a comment  | 

7 Answers 7

Reset to default 81

+1 for Batarang

Also, you can get the scope from any element in the DOM by executing the following from the console

angular.element(DOMNODE).scope()

Where DOMNODE, is of course, a reference to a DOM node.

For example, in Chrome in the elements tab you can select the node where the ng-app directive is, and get the root scope with

angular.element($0).scope()

In the developer console try this

$rootScope = angular.element(document).scope()

Batarang -- A Google Chrome plugin for AngularJS

After you installed this, you can do

console.log($rootScope);

and check the scope object in your chrome console.

BTW, if you want to get $rootScope, you need to inject to your controller

like

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

}

In developer console type angular.element('body').scope(); in case of your app is <body data-ng-app="SomeApp">

For those using $compileProvider.debugInfoEnabled(false); and ng-strict-di just paste this in the console and $rootScope will be logged and added to window:

function getRootScope($rootScope){ console.log(window.$rootScope = $rootScope); }
getRootScope.$inject = ["$rootScope"];
angular.element(document.querySelector('[data-ng-app],[ng-app]')).injector().invoke(getRootScope);

You can see the $rootScope in your sources Developer Tools->Sources

Just wanted to add that there is a free Chrome Extension called "Angular Scope Inspector" (current store url) that will automatically inspect scope of selected elements in the developer tools elements tab

I just discovered it today, and it's very useful, IMO

本文标签: javascripthow to debug the rootScope object of angularjs in the browserStack Overflow