我想访问我的$范围变量在Chrome的JavaScript控制台。我怎么做呢?
我既不能看到$scope也不能看到我的模块myapp的名称在控制台中作为变量。
我想访问我的$范围变量在Chrome的JavaScript控制台。我怎么做呢?
我既不能看到$scope也不能看到我的模块myapp的名称在控制台中作为变量。
当前回答
我同意最好的是Batarang在选择对象后使用它的$scope(它与angular.element($0).scope()相同,甚至更短的jQuery: $($0).scope()(我的最爱))
同样,如果你像我一样在body元素上有主作用域,那么$('body').scope()就可以了。
其他回答
检查元素,然后在控制台中使用它
s = $($0).scope()
// `s` is the scope object if it exists
只需在作用域外定义一个JavaScript变量,并将其分配到控制器中的作用域:
var myScope;
...
app.controller('myController', function ($scope,log) {
myScope = $scope;
...
就是这样!它应该可以在所有浏览器中工作(至少在Chrome和Mozilla中测试)。
它正在工作,我正在用这个方法。
同样,我们可以像这样通过HTML元素的名称来访问作用域: angular.element (document.getElementsByName (onboardingForm) [0]) .scope ()
对于这些答案有一个警告:如果你对控制器进行了别名,那么你的作用域对象将位于scope()返回的对象中的一个对象中。
例如,如果你的控制器指令是这样创建的: <div ng-controller="FormController as frm"> 然后访问控制器的startDate属性,调用angular.element($0).scope().frm.startDate
我同意最好的是Batarang在选择对象后使用它的$scope(它与angular.element($0).scope()相同,甚至更短的jQuery: $($0).scope()(我的最爱))
同样,如果你像我一样在body元素上有主作用域,那么$('body').scope()就可以了。