我想访问我的$范围变量在Chrome的JavaScript控制台。我怎么做呢?
我既不能看到$scope也不能看到我的模块myapp的名称在控制台中作为变量。
我想访问我的$范围变量在Chrome的JavaScript控制台。我怎么做呢?
我既不能看到$scope也不能看到我的模块myapp的名称在控制台中作为变量。
当前回答
在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的控制台
其他回答
要添加和增强其他答案,在控制台中输入$($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代码的提示和技巧。
对于这些答案有一个警告:如果你对控制器进行了别名,那么你的作用域对象将位于scope()返回的对象中的一个对象中。
例如,如果你的控制器指令是这样创建的: <div ng-controller="FormController as frm"> 然后访问控制器的startDate属性,调用angular.element($0).scope().frm.startDate
如果你已经安装了Batarang
然后你可以这样写:
$scope
当你在chrome的元素视图中选择了元素。 参考- https://github.com/angular/angularjs-batarang#console
你可以先从DOM中选择一个在你想要检查的范围内的元素:
然后你可以通过在控制台中查询以下命令来查看作用域对象:
angular.element .scope (0) ()
你可以查询范围内的任何属性,例如:
.widgets angular.element(0)美元.scope ()
或者你可以检查附在范围上的控制器:
心理图像元素(0.06美元)。范围(myControllerName美元)。
(另一种可行的方法是在代码中添加断点。如果$scope目前在当前的“普通旧JavaScript”范围内,那么你可以在控制台中检查$scope的值。)
这也需要安装jQuery,但是非常适合开发环境。它查看每个元素以获得作用域的实例,然后返回带有控制器名称的实例。它还删除了任何以$开头的属性,这是angularjs通常用于配置的属性。
let controllers = (extensive = false) => {
let result = {};
$('*').each((i, e) => {
let scope = angular.element(e).scope();
if(Object.prototype.toString.call(scope) === '[object Object]' && e.hasAttribute('ng-controller')) {
let slimScope = {};
for(let key in scope) {
if(key.indexOf('$') !== 0 && key !== 'constructor' || extensive) {
slimScope[key] = scope[key];
}
}
result[$(e).attr('ng-controller')] = slimScope;
}
});
return result;
}