我有以下html:
我试图让范围像:
console.log("app element scope: " + $('#angularHeaderDiv').scope());
但我收到了:undefined
。
我是angularJS初学者,我根本不知道为什么这不起作用。
更新:这也不起作用:
var appElement = document.getElementById('angularHeaderDiv');
console.log("app element scope: " + angular.element(appElement).scope());
更新2 :我尝试在控制台中打印范围的所有代码:
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());
});
答案 0 :(得分:15)
如果您的代码中有此内容:
$compileProvider.debugInfoEnabled(false);
...然后scope()
和isolateScope()
将返回undefined
。如果它设置为false
,您会注意到ng-scope
和ng-isolate-scope
之类的其他内容从元素的class=
属性中消失。
请参阅:https://code.angularjs.org/1.3.16/docs/guide/production#disabling-debug-data
答案 1 :(得分:0)
我认为你实际上没有scope
。假设您的意思是$scope
,它是一个在控制器和DOM的一部分之间共享的环境,它通过AngularJS依赖注入机制注入到控制器内部。除此之外,我没有看到你的'#angularHeaderDiv'
和任何范围之间存在任何关联,因为这个div甚至与任何控制器都没有关联。
我对AngularJS也不是很有经验,但实际上我从来没有见过你想要在这里完成什么。
修改强>
看过你的编辑,你试图访问config
中的DOM元素,我会说这肯定是非AngularJS方法来解决你的问题。我建议你阅读更多有关框架的内容。