Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在console-angularjs中获取特定的控制器作用域列表?_Javascript_Jquery_Angularjs_Browser_Console - Fatal编程技术网

Javascript 如何在console-angularjs中获取特定的控制器作用域列表?

Javascript 如何在console-angularjs中获取特定的控制器作用域列表?,javascript,jquery,angularjs,browser,console,Javascript,Jquery,Angularjs,Browser,Console,我正在尝试在浏览器控制台中编辑此总线搜索angualrjs站点的总线列表 我试图访问该页面中的filteredbudata(ng repeat)列表,该列表用于从控制台执行ng repeat 代码: 方法1: angular.element(document.body).injector().invoke(function ($rootScope) { scope = $rootScope; console.log(scope.filteredBusData);

我正在尝试在浏览器控制台中编辑此总线搜索angualrjs站点的总线列表

我试图访问该页面中的
filteredbudata
(ng repeat)列表,该列表用于从控制台执行ng repeat

代码: 方法1:

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 
方法2:

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 
问题: 两种
方法都不起作用:(

方法1:
范围。未定义filteredBusData

方法2:未捕获错误:[jqLite:nosel]jqLite不支持通过选择器查找元素

问题: 如何在浏览器控制台中访问特定控制器作用域

如有任何建议/想法,将不胜感激

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.element(document.querySelector('[data-ng-controller=busTicketCheckoutCtrl]')).scope()

将其更改为
angular.element(document.querySelector('[data ng controller=basticketcheckoutctrl]'))
但仍然无法使用
angular.element(document.querySelector('[data ng controller=basticketcheckoutctrl]').scope()访问作用域()
感谢您提供的信息。它被赋予了
未定义的
效果很好:)谢谢lot@karthick.k很高兴为您提供帮助..谢谢:)@jonnyknows测试您的解决方案是正确的只是修改了它。。谢谢:)有没有在casperjs中使用
angular.reloadWithDebugInfo()
。@karthigh.k很高兴为您提供帮助。.非常感谢:)