我想访问我的$范围变量在Chrome的JavaScript控制台。我怎么做呢?
我既不能看到$scope也不能看到我的模块myapp的名称在控制台中作为变量。
我想访问我的$范围变量在Chrome的JavaScript控制台。我怎么做呢?
我既不能看到$scope也不能看到我的模块myapp的名称在控制台中作为变量。
当前回答
我使用了angular.element($(".ng-scope")).scope();在过去,它工作得很好。如果你在页面上只有一个应用范围,那就好了,或者你可以这样做:
angular.element ($ (" div [ng-controller = controllerName] ")) .scope ();或angular.element (document.getElementsByClassName(“ng-scope”).scope ();
其他回答
只需将$scope赋值为全局变量。问题解决了。
app.controller('myCtrl', ['$scope', '$http', function($scope, $http) {
window.$scope = $scope;
}
实际上,我们在开发中比在生产中更需要$scope。
@JasonGoemaat已经提到了,但添加它作为这个问题的合适答案。
出于调试的目的,我把它放在控制器的开头。
window.scope = $scope;
$scope.today = new Date();
我是这样使用它的。
然后删除它,当我完成调试。
这是一种在没有Batarang的情况下获得瞄准镜的方法,你可以:
var scope = angular.element('#selectorId').scope();
或者如果你想通过控制器名找到你的作用域,这样做:
var scope = angular.element('[ng-controller=myController]').scope();
在你对你的模型做了更改之后,你需要通过调用以下命令将更改应用到DOM:
scope.$apply();
在Chrome的控制台:
1. Select the **Elements** tab
2. Select the element of your angular's scope. For instance, click on an element <ui-view>, or <div>, or etc.
3. Type the command **angular.element($0).scope()** with following variable in the angular's scope
例子
angular.element($0).scope().a
angular.element($0).scope().b
Chrome的控制台
我使用了angular.element($(".ng-scope")).scope();在过去,它工作得很好。如果你在页面上只有一个应用范围,那就好了,或者你可以这样做:
angular.element ($ (" div [ng-controller = controllerName] ")) .scope ();或angular.element (document.getElementsByClassName(“ng-scope”).scope ();