在浏览器中加载angularjs应用程序时,有没有一种调试方法?
即。我希望获得$rootScope
当前申请的。我该怎么办?
Answers:
Batarang +1
另外,您可以通过从控制台执行以下命令,从DOM中的任何元素获取范围
angular.element(DOMNODE).scope()
在DOMNODE中,当然是对DOM节点的引用。
例如,在Chrome的elements选项卡中,您可以选择ng-app
指令所在的节点,并使用
angular.element($0).scope()
ng-app
元素,然后进行操作var $rootScope = angular.element($0).injector().get('$rootScope')
并进行播放。
angular.element('body').scope();
在您的应用程序的情况下<body data-ng-app="SomeApp">
debugInfoEnabled
不能为此禁用任何东西。
在开发者控制台angular.element('body').scope();
中,如果您的应用是<body data-ng-app="SomeApp">
对于那些正在使用$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);
delete window.angular
,希望它不会破坏任何内容。