Javascript 如何在console-angularjs中获取特定的控制器作用域列表?
我正在尝试在浏览器控制台中编辑此总线搜索angualrjs站点的总线列表 我试图访问该页面中的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);
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很高兴为您提供帮助。.非常感谢:)