关于jquery:为什么我的范围未定义?

Why my scope is undefined?

我有以下HTML:

enter image description here

我试着把示波器弄到:

1
console.log("app element scope:" + $('#angularHeaderDiv').scope());

但我收到了:undefined

我是AngularJS初学者,我不明白为什么这不管用。

更新:这也不起作用:

1
2
var appElement = document.getElementById('angularHeaderDiv');
console.log("app element scope:" + angular.element(appElement).scope());

更新2:我试图在控制台中打印出作用域的所有代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
   angular.module('cmApp', [ 'pascalprecht.translate' ])
.config(function($translateProvider) {

    $translateProvider.useStaticFilesLoader({
        prefix : '/resources/angular/scripts/languages/locale-',
        suffix : '.json'
    });

    // add translation table
    $translateProvider.preferredLanguage('en');

    var appElement = document.getElementById('angularHeaderDiv');
    console.log("app element:" + angular.element(appElement).scope());
});


如果您的代码中包含此内容:

1
$compileProvider.debugInfoEnabled(false);

…然后scope()isolateScope()将返回undefined。如果设置为false,您会注意到其他东西,如ng-scopeng-isolate-scope,会从元素的class=属性中消失。

参见:https://code.angularjs.org/1.3.16/docs/guide/production禁用调试数据


我不认为你真的有一个scope。假设您是指$scope,它是一个在控制器和您的DOM的一部分之间共享的环境,并且它是通过angularJS依赖注入机制注入到控制器内部的。除此之外,我看不到您的'#angularHeaderDiv'和任何范围之间有任何关联,因为这个DIV甚至与任何控制器都没有关联。

我也不是很有经验的安古拉吉斯,但实际上我从来没有看到你试图在这里完成什么。

编辑

在看到您的编辑之后,您试图访问config中的dom元素,我想说这是解决您的问题的一种非AngularJS方法。我建议您阅读更多关于框架的内容。