72

有没有办法在浏览器中加载 angularjs 应用程序时对其进行调试?

IE。我希望得到$rootScope我当前的应用程序。我该怎么做?

4

7 回答 7

77

+1 巴达朗

此外,您可以通过从控制台执行以下命令从 DOM 中的任何元素获取范围

angular.element(DOMNODE).scope()

其中 DOMNODE,当然是对 DOM 节点的引用。

例如,在元素选项卡中的 Chrome 中,您可以选择ng-app指令所在的节点,并获取根范围

angular.element($0).scope()
于 2012-11-01T06:30:23.133 回答
47

在开发者控制台中试试这个

$rootScope = angular.element(document).scope()
于 2014-08-01T15:24:21.990 回答
15

Batarang -- AngularJS 的 Google Chrome 插件

安装后,你可以这样做

控制台.log($rootScope);

并检查 chrome 控制台中的范围对象。

顺便说一句,如果你想获得 $rootScope,你需要注入你的控制器

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

}
于 2012-11-01T04:26:39.147 回答
4

对于那些使用$compileProvider.debugInfoEnabled(false);并将ng-strict-di其粘贴到控制台中的人,$rootScope将被记录并添加到window

function getRootScope($rootScope){ console.log(window.$rootScope = $rootScope); }
getRootScope.$inject = ["$rootScope"];
angular.element(document.querySelector('[data-ng-app],[ng-app]')).injector().invoke(getRootScope);
于 2018-03-23T12:31:11.783 回答
3

您可以在源代码开发者工具-> 源代码中看到 $rootScope

$rootScope

于 2015-03-04T12:02:40.343 回答
3

在开发者控制台类型angular.element('body').scope();中,如果您的应用是<body data-ng-app="SomeApp">

于 2015-12-24T18:46:25.157 回答
2

只是想补充一下,有一个名为“Angular Scope Inspector”(当前商店网址)的免费 Chrome 扩展程序将自动检查开发人员工具元素选项卡中选定元素的范围

我今天才发现它,它非常有用,IMO

于 2014-09-23T19:07:53.420 回答