如何在控制台中获取特定的控制器范围列表 - angularjs?

How to get particular controller scope list in console - angularjs?

我正在尝试在浏览器控制台中为此巴士搜索 angualrjs 站点编辑巴士列表。

我试图从控制台访问该页面中的 filteredBusData(ng-repeat) 列表,该列表在 ng-repeat 中使用。

代码:

方法一:

angular.element(document.body).injector().invoke(function ($rootScope)
{
        scope = $rootScope;
        console.log(scope.filteredBusData);
});

方法二:

angular.element('[ng-controller="busTicketCheckoutCtrl"]').scope;

`busTicketCheckoutCtrl` is the particular controller 

问题:

两个 methods 都不起作用 :(

方法一:scope.filteredBusData未定义

方法二:未捕获错误:[jqLit​​e:nosel]jqLit​​e 不支持通过选择器查找元素!

问题:

如何访问浏览器控制台中的特定控制器范围?

有suggestion/idea不胜感激

var scope = angular.element($('[ng-controller=busTicketCheckoutCtrl]')).scope();

如果您不使用 jQuery,那么您需要:

var scope = angular.element(document.querySelector('[ng-controller=busTicketCheckoutCtrl]')).scope();

目前您只是将一个字符串传递给 angular.element(),我认为它需要一个实际元素。

@jonnyknowsbest 答案是正确的,但主要是站点已禁用调试信息,您需要先使用 angular.reloadWithDebugInfo() 启用它,此命令将重新加载您的页面。之后您可以访问控制器对象。

然后您可以在控制台中访问 angular 范围。

angular.element(document.querySelector('[data-ng-controller=busTicketCheckoutCtrl]')).scope()