当前位置: 首页 > 面试题库 >

如何使用AngularJS在浏览器的控制台中访问$ scope变量?

郭洋
2023-03-14
问题内容

我想$scope在Chrome的JavaScript控制台中访问我的变量。我怎么做?

我既看不到控制台中的$scope模块名称也看不到它的myapp变量。


问题答案:

在开发人员工具的HTML面板中选择一个元素,然后在控制台中输入以下元素:

angular.element($0).scope()

在WebKit和Firefox中,$0是对elements选项卡中所选DOM节点的引用,因此通过执行此操作,可以在控制台中打印出所选DOM节点范围。

您还可以按元素ID定位作用域,如下所示:

angular.element(document.getElementById('yourElementId')).scope()

插件/扩展

您可能需要检查一些非常有用的Chrome扩展程序:

  • Batarang。这已经有一段时间了。

  • ng-inspector。这是最新的,顾名思义,它使您可以检查应用程序的范围。

玩jsFiddle

使用jsfiddle时,您可以通过在URL的末尾添加显示
模式打开小提琴/show。这样运行时,您可以访问angular全局变量。您可以在这里尝试:

http://jsfiddle.net/jaimem/Yatbt/show

jQuery Lite

如果您在AngularJS之前加载jQuery,angular.element则可以传递jQuery选择器。因此,您可以使用以下命令检查控制器的范围

angular.element('[ng-controller=ctrl]').scope()

一个按钮

 angular.element('button:eq(1)').scope()

… 等等。

您实际上可能想使用全局函数来简化它:

window.SC = function(selector){
    return angular.element(selector).scope();
};

现在您可以执行此操作

SC('button:eq(10)')
SC('button:eq(10)').row   // -> value of scope.row

在这里检查:http :
//jsfiddle.net/jaimem/DvRaR/1/show/



 类似资料:
  • 问题内容: 为了进行快速验证,我在开发过程中已在浏览器控制台中测试了AngularJS服务。我注入到服务控制台的方法是在为说明这个问题,或 这与AngularJS 1.0.7完美配合。但是,升级到1.1.5之后,对于使用service的服务将不再起作用,不会发送xhr。 我已经测试过直接注射,它也不起作用。AngularJS changelog似乎没有关于此问题的记录。我可以知道这是什么问题吗?

  • 如何从chrome的控制台访问范围变量小部件 像这样的东西在控制台中根本不起作用!

  • 是否可以从Linux终端访问开发者工具(Chrome/Firefox)控制台以进行脚本编写? 我试图从我的浏览器访问AngularJS应用程序的变量,这样我就可以快速浏览文件。例如,我可以要求,及其相关的,等;一旦我找到结果,我会在编辑器中打开该文件。 我正在探索的其他选择是使用某种无头浏览器。另外还有一个开发工具协议,它被木偶师等工具用来编程访问Chrome开发工具。 一个简单的节点REPL就足

  • 问题内容: 我有上面的控制器,它设置了一个我只能从内部访问值的控制器。 但我看到的地方,使用下面我将能够访问,但是当我在它不存在。 我无法弄清楚如何访问$ scope并使用变量更新它。 问题答案: 没有看到标记,我想MenuSideController的作用域是您选择的作用域的子作用域。 虽然可以像这样遍历树(假设我们想要的作用域是第一个孩子): 仅选择连接了特定控制器的元素会更简单。 假设您正在

  • 我有一个DisplayComponent,我想在浏览器/开发人员的控制台中看到它的数据。我怎么能看到呢? Angular2分步指南中的示例: 如何在浏览器/开发人员的控制台中查看? *请注意,这是一个关于角2的问题,而不是角1。AngularJS(Angular 1)的建议解决方案不起作用。

  • 出于调试的目的,我希望在控制台的客户端访问我的Angular模块函数。 是否有一种方法可以在浏览器的控制台中访问Angular$scope?