我过去做了几个使用AngularJS的项目。在开发过程中,我始终能够在浏览器控制台中调用$ scope,从而调用其所有变量。例如,$scope.myArray
会返回[]
或[object1, object2]
等内容。
但是,现在当我输入$scope
时,我得到:
未捕获的ReferenceError:未定义$ scope
我还查看了其他帖子,例如How to access the $scope variable in browser's console using AngularJS?,建议使用angular.element($0).scope()
,但是当我在控制台中输入时,我得到:
未定义
我无法访问myArray
之类的对象,即使我知道它正在被创建。有谁知道改变了什么?
编辑:当我尝试以前能够访问$ scope的项目中的代码时,我也遇到了这个问题,所以这让我觉得这不是一个简单的实现错误。
答案 0 :(得分:0)
$ 0是对元素选项卡中所选DOM节点的引用,因此通过这样做可以在控制台中打印出选定的DOM节点范围。
您必须先获得该元素。 或者您可以获得指定的范围。 例如:
angular.element('#element').scope();
或
angular.element(document.getElementsByTagName("button")[0]).scope()
答案 1 :(得分:0)
在控制器的定义中放置window.myScope = $scope
。然后在控制台中,您可以致电myScope.myArray
将某些内容返回给您。
例如:
var app = angular.module('myApp', [])
app.controller('myCtrl', function($scope) {
window.myScope = $scope; //this allows console access
$scope.myArray = [];
//more code here
});