How to access $scope variable in angular from chrome console
如何从chrome控制台访问范围变量小部件
1 2 3 4 5 6 7 | function MyCntrl($scope) { $scope.widgets = [ {text:'Widget #1', datarow:1, datacol:1, datasizex:3, datasizey:3}, {text:'Widget #2', datarow:2, datacol:1, datasizex:3, datasizey:3}, {text:'Widget #3', datarow:1, datacol:2, datasizex:3, datasizey:3}, {text:'Widget #4', datarow:2, datacol:2, datasizex:3, datasizey:3} ]; |
像EDOCX1[0]这样的东西在控制台中根本不起作用!
作用域绑定到DOM,因此需要获取一个元素并使用一些角度代码来获取作用域。
最好的办法是得到一个控制器绑定到的元素,并查看其作用域。
这是答案如何使用angularjs访问浏览器控制台中的$scope变量?
这是一种不使用巴达朗的方法。假设您在页面上引用了jquery和angular,那么可以执行以下操作:
1 | var scope = angular.element($('#selectorId')).scope(); |
或者,如果要按控制器名称查找作用域,请执行以下操作:
1 | var scope = angular.element($('[ng-controller=myController]')).scope(); |
对模型进行更改后,需要通过调用
1 | scope.$apply(); |
你可以遵循意志的力量或安装角巴塔朗铬延长。这不仅允许您从中查看和操作"$scope"对象,比如说您的javascript控制台,而且在开发复杂的AngularJS应用程序时,它是一个基本工具。
下面是一个例子:我的Angular单页应用程序中有以下DOM:
1 | Roles |
这个DIV在控制器名usersappcontroller中作为UAC存在上面我有控制器作为语法
还要注意,我在应用程序中使用的是jquery:
$($0).controller()方法将直接访问$scope对象上的UAC对象。
$($0.scope()将为我选择的元素提供原型链,如果我遵循该链,将在该元素上找到我的作用域对象。