我想访问我的$范围变量在Chrome的JavaScript控制台。我怎么做呢?
我既不能看到$scope也不能看到我的模块myapp的名称在控制台中作为变量。
我想访问我的$范围变量在Chrome的JavaScript控制台。我怎么做呢?
我既不能看到$scope也不能看到我的模块myapp的名称在控制台中作为变量。
当前回答
你可以先从DOM中选择一个在你想要检查的范围内的元素:
然后你可以通过在控制台中查询以下命令来查看作用域对象:
angular.element .scope (0) ()
你可以查询范围内的任何属性,例如:
.widgets angular.element(0)美元.scope ()
或者你可以检查附在范围上的控制器:
心理图像元素(0.06美元)。范围(myControllerName美元)。
(另一种可行的方法是在代码中添加断点。如果$scope目前在当前的“普通旧JavaScript”范围内,那么你可以在控制台中检查$scope的值。)
其他回答
要添加和增强其他答案,在控制台中输入$($0)以获取元素。如果它是一个Angularjs应用程序,则默认加载jQuery精简版。
如果你不使用jQuery,你可以使用angular.element($0)如下:
angular.element($0).scope()
要检查你是否有jQuery和版本,在控制台中运行这个命令:
$.fn.jquery
如果您已经检查了一个元素,那么当前选择的元素可以通过命令行API引用$0获得。Firebug和Chrome都有这个引用。
然而,Chrome开发工具将可用的最后五个元素(或堆对象)选择通过属性命名$0,$1,$2,$3,$4使用这些引用。最近选择的元素或对象可以引用为$0,次近的元素或对象可以引用为$1,依此类推。
下面是Firebug的命令行API引用,它列出了它的引用。
$($0).scope()将返回与元素关联的范围。你可以马上看到它的属性。
你还可以使用其他一些东西:
查看元素的父作用域:
(0)美元.scope()。美元的父母。
你也可以链接这个:
(0)美元.scope()。父母。父母美元
你可以看看根作用域:
(0)美元.scope根。美元()
如果你用隔离作用域高亮显示了一个指令,你可以用:
(0)美元.isolateScope ()
更多细节和示例请参见调试不熟悉的Angularjs代码的提示和技巧。
出于调试的目的,我把它放在控制器的开头。
window.scope = $scope;
$scope.today = new Date();
我是这样使用它的。
然后删除它,当我完成调试。
只需在作用域外定义一个JavaScript变量,并将其分配到控制器中的作用域:
var myScope;
...
app.controller('myController', function ($scope,log) {
myScope = $scope;
...
就是这样!它应该可以在所有浏览器中工作(至少在Chrome和Mozilla中测试)。
它正在工作,我正在用这个方法。
在Chrome的控制台:
1. Select the **Elements** tab
2. Select the element of your angular's scope. For instance, click on an element <ui-view>, or <div>, or etc.
3. Type the command **angular.element($0).scope()** with following variable in the angular's scope
例子
angular.element($0).scope().a
angular.element($0).scope().b
Chrome的控制台
如果你已经安装了Batarang
然后你可以这样写:
$scope
当你在chrome的元素视图中选择了元素。 参考- https://github.com/angular/angularjs-batarang#console