Javascript 什么会阻止从浏览器控制台访问AngularJS$scope?
我过去做过几个使用AngularJS的项目。在开发中,我总是能够在浏览器控制台中调用$scope,从而调用它的所有变量。例如,$scope.myArray将返回类似[]或[object1,object2]的内容 但是,现在当我键入$scope时,我得到: 未捕获引用错误:$未定义作用域 我也看过其他帖子,比如,建议使用angular.element$0.scope,但当我在控制台中键入时,我得到: 未定义 而且我不能访问像myArray这样的对象,即使我知道它正在被创建。有人知道发生了什么变化吗Javascript 什么会阻止从浏览器控制台访问AngularJS$scope?,javascript,angularjs,console,angularjs-scope,Javascript,Angularjs,Console,Angularjs Scope,我过去做过几个使用AngularJS的项目。在开发中,我总是能够在浏览器控制台中调用$scope,从而调用它的所有变量。例如,$scope.myArray将返回类似[]或[object1,object2]的内容 但是,现在当我键入$scope时,我得到: 未捕获引用错误:$未定义作用域 我也看过其他帖子,比如,建议使用angular.element$0.scope,但当我在控制台中键入时,我得到: 未定义 而且我不能访问像myArray这样的对象,即使我知道它正在被创建。有人知道发生了什么变化吗
编辑:当我尝试以前的项目中的代码时,我也遇到了这个问题,我曾经能够访问$scope,因此我认为这不是一个简单的实现错误。$0是对元素选项卡中所选DOM节点的引用,因此通过这样做,您可以在控制台中打印出所选DOM节点范围 您必须先获取元素。 或者,您可以只获取指定的范围。 例: 或
在控制器的定义中,放置window.myScope=$scope。然后在控制台中,您可以调用myScope.myArray将内容返回给您 例如:
检查此项,它仍然与依赖项注入一起工作,在任何地方都可能$0没有引用正确的元素。为您的元素找到一个选择器,例如,通过检查元素,右键单击元素面板中的元素,然后单击获取CSS路径,然后执行angular.element CSS路径.scope。我在chrome中使用AngularJS Batarang,这使我能够在控制台中键入$scope。您是否也使用了此扩展,并在卸载后意外忘记了扩展?@TjaartvanderWalt感谢您建议使用Batarang。这将有助于我进行调试,尽管我仍然希望使用以前的功能从控制台中调用$scope。我仍然无法使其正常工作。我输入angular.element.button.scope;得到这个:未捕获错误:[jqLite:nosel]http://errors.angularjs.org/1.3.14/jqLite/noselThat这是jqLite的问题。试试这个。angular.elementdocument.getElementsByTagNamebutton[0]。作用域
angular.element('#element').scope();
angular.element(document.getElementsByTagName("button")[0]).scope()
var app = angular.module('myApp', [])
app.controller('myCtrl', function($scope) {
window.myScope = $scope; //this allows console access
$scope.myArray = [];
//more code here
});