我的 Angular 应用程序中某处存在内存泄漏,我正在尝试找到它。
是否可以在控制台中列出所有正在运行的 Controller 实例及其 this
变量?
我知道我可以输入 console.log(window)
来打印所有变量,但我不知道如何从那里导航到 Controller 实例。
最佳答案
那么,您可以很好地访问所有 Controller 的范围
,如下所示:
var ngControllers = document.querySelectorAll('[ng-controller]');
angular.forEach(ngControllers, function(controllerElement) {
var scope = angular.element(controllerElement).scope();
console.log(scope);
});
而且,如果您想访问所有嵌套作用域,而不管 ng-controller
是什么,那么您也可以这样做:
var $rootScope = angular.element(document.querySelector('[ng-app]')).scope();
var q = [$rootScope];
while (q.length > 0) {
var scope = q.pop();
console.log(scope);
if (scope.$$childHead) {
q.push(scope.$$childHead);
}
if (scope.$$nextSibling) {
q.push(scope.$$nextSibling);
}
}
关于javascript - 在控制台中列出正在运行的 Controller 实例及其 this 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35845787/