当前位置: 首页 > 知识库问答 >
问题:

为什么我的范围是未定义的?

袁永贞
2023-03-14

我有以下html:

我试图获得如下范围:

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

但我收到:定义

我是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());
});

共有2个答案

寿浩言
2023-03-14

我认为您实际上没有范围。假设您的意思是$scope,它是一个在控制器和DOM的一部分之间共享的环境,并且通过AngularJS依赖项注入机制将其注入控制器内部。除此之外,我看不到您的“#angularHeaderDiv”与任何作用域之间有任何关联,因为这个div甚至与任何控制器都没有关联。

我对AngularJS也不太有经验,但实际上我从未见过你在这里试图完成什么。

编辑

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

拓拔元徽
2023-03-14

如果代码中有此项:

$compileProvider.debugInfoEnabled(false);

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

见:https://code.angularjs.org/1.3.16/docs/guide/production#disabling-debug-data

 类似资料:
  • 问题内容: 我对代码块或“作用域”的定义感到困惑。苹果公司的守卫文档说了这一点:守卫声明的else块… “必须转移控制权以退出其中出现保护声明的代码块。” 其他在线消息来源说,警卫声明必须退出其存在的“范围”。 因此,请看下面的示例代码: 根据我目前对“范围”的理解,代码 创建一个新范围,即{}之间。鉴于此假设,后卫只会逃避这一范围。但事实并非如此。在这种情况下,无论是否将其埋在if子句中,gua

  • 问题内容: 我试图了解在多个JavaConfig上下文中放置注释的正确位置在哪里? 考虑以下情形:我在JPAConfig.java和AppConfig.java中具有服务bean集的JPA配置。然后,在RootConfig.java中编写整个应用程序配置。 我在JPAConfig.java中定义事务管理器,并启用对JPA存储库的扫描- 当这些暴露事务行为时,我将其放到JPAConfig上,并且它可

  • 问题内容: 我试图制作一个延迟X毫秒执行异步函数的函数。 为了演示的目的,以下是异步函数,该函数采用URL: 目的 我在这里的目标是要有一个函数,它将接受X 的参数,然后每隔X ms调用一次,直到不再有其他参数为止。 基本上,我希望每次调用都用X ms分隔。 例如,假设我连续打电话20次。通常,这20个呼叫将立即进行。我想要的是确保20个呼叫之间都存在Xms的延迟。 暂定 解决这个问题的想法是建立

  • 问题内容: 我一直在跟随一个教程,教科书向我保证这可以工作,但是 错误:[ng:areq]参数’SimpleController’不是一个函数,未定义 为什么?我掉毛了,在它上面上下移动,看不到问题。为什么出现未定义状态? 问题答案: 我的猜测是您使用的angular.js版本是更新的。 有一个重大变化,即: 默认情况下 , angular将不再寻找控制器。有关更多详细信息,请参见3f2232b5

  • 我实际上是在加载CA。5'000'0000条记录。过了一段时间(500'000条记录),我收到了以下消息 严重:检测到阻塞的系统关键线程。这可能导致集群范围内的未定义行为[ThreadName=Data-Streamer-Stripe-2,BlockedFor=17s]rto_1 Mar.082020 5:02:08 PM java.util.logging.logManager$RootLogg

  • 问题内容: 我编写了这段代码,将整个以10为底的数字转换为二进制。我相信代码就是它所需要的一切,但是我无法让ArrayLists正常工作。我已经在这个网站上花了几个小时,而其他人则尝试了无数次更改,但无济于事。我已经获得了可以在没有和错误的情况下进行编译的代码,但是一旦输入int程序就会崩溃。 这是代码: 这些是我输入数字时Java抛出的异常。 我希望这是足够的信息。 问题答案: 在您的代码中,您