Javascript $scope在控制台上不工作

Javascript $scope在控制台上不工作,javascript,angularjs,scope,Javascript,Angularjs,Scope,AngularJS范围开发者指南说,我们可以通过在控制台上键入$scope来检查范围 要检查调试器中的作用域,请执行以下操作: 1.在浏览器中的感兴趣元素上单击鼠标右键,然后选择 “检查元件”。您应该可以看到带有 您单击的元素高亮显示 2.调试器允许您访问中当前选定的元素 将控制台设置为$0变量 3.要在控制台中检索关联的作用域,请执行: 元素($0).scope()或只键入$scope 但当我在控制台上键入$scope时,它会显示 未捕获引用错误:$未定义作用域 时间:1:1 这是供参考的文件

AngularJS范围开发者指南说,我们可以通过在控制台上键入$scope来检查范围

要检查调试器中的作用域,请执行以下操作:

1.在浏览器中的感兴趣元素上单击鼠标右键,然后选择 “检查元件”。您应该可以看到带有 您单击的元素高亮显示

2.调试器允许您访问中当前选定的元素 将控制台设置为$0变量

3.要在控制台中检索关联的作用域,请执行: 元素($0).scope()或只键入$scope

但当我在控制台上键入$scope时,它会显示

未捕获引用错误:$未定义作用域 时间:1:1

这是供参考的文件

app.js看起来像这样

var app=angular.module("app",[]);
app.controller("ctrl",['$scope','demoservice',function($scope,demoservice){
  console.log(demoservice);
  $scope.ser=demoservice;
}]);

app.service("demoservice",[function (){
  this.name="Himanshu";
}]);

有人在请求代码,所以下面是出现相同错误的原因。

$scope是控制器内的一个参考变量,因此在控制台上写入$scope将不会提供访问权限,因为它不是全局变量,而是作用域的私有变量。因此,如果需要访问$范围变量,则需要在一定的执行范围内访问它,请考虑下面的示例

断点一直保留在执行内容的中间,所以现在,作为$范围在内存中,我们可以在这样的控制台中使用它:

var app=angular.module("app",[]);
app.controller("ctrl",['$scope','demoservice',function($scope,demoservice){
  console.log(demoservice);
  $scope.ser=demoservice;
}]);

app.service("demoservice",[function (){
  this.name="Himanshu";
}]);

因此,为了检查$scope,您必须处于执行过程中,可能不仅仅是$scope,这适用于任何js代码变量,除非无法在窗口控制台中访问其全局变量


除此之外,要使用更友好的angular JS调试,您还可以使用chrome的附加组件从HTML中选择一个元素,并在控制台选项卡中执行angular.element($0.scope()这是一条语句,您将获得该元素的范围

您可以在inspect chrome插件中安装。并使用
$s

在控制台中获取元素的范围。

向下投票不太公平。这就是文档所说的如果您在执行过程中通过控制台中的断点进行检查并且$scope在内存中,即您的断点位于控制器或函数中,您可以访问$scope,因为$scope被包装在控制器中,所以在控制台中作为一个普通变量使用它不是全局的,只要他们不告诉我们他们试图做什么,这是公平的。也许他们只是用一行代码创建了一个js文件-
console.log($scope)($范围未定义在:1:1)?如果用户向我们展示他们的代码,我可能会还原我的voteI imagine操作,按照说明进行操作(正如我刚才尝试的那样),并发现错误。这只需要作为问题报告给Angular teamProgress Angular.element($0.scope();我知道的事。但是开发者指南也声明我也可以使用$scope。这就是我的问题,$scope为什么不起作用。@Naveen对于accessign$scope,您必须在执行范围下查看我的答案,否则对于angular使用angular Batarange进行更好的调试。在调试模式下,在该调试点闭包中可用的所有变量都可以在控制台中访问。假设执行函数有变量$scope、variable1、variable2。所有这些值都将在控制台上可用(在调试模式下)。