javascript - 指令模板中的 $rootScope 变量

标签 javascript angularjs

我正在尝试从指令模板中的 $rootScope 访问变量。但是,我无法访问它。

简化模板:

<div class="item">
    {{ serverRoot }}
</div>

指令:

ItemModule.directive('item', [function ($rootScope) {
    return {
        restrict: 'E',
        scope: {
            item: '='
        },

        templateUrl: 'js/modules/items/directives/templates/item.html',

        link: function (scope, iElement, iAttrs) {
        }
    };
}])

如何访问变量 $rootScope.serverRoot

最佳答案

你已经为你的指令定义了一个新的范围

scope: {
    item: '='
},

因此它不会成为您的链接 -> 范围或 Controller -> 范围的一部分。您应该可以通过

访问它
link: function (scope, iElement, iAttrs) {
    scope.serverRoot = $rootScope.serverRoot;    
}

此外,您的实际指令声明需要看起来像

ItemModule.directive('item', [ '$rootScope', function ($rootScope) {

关于javascript - 指令模板中的 $rootScope 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24309630/

相关文章:

javascript - Angular : Why can't I inject $provide directly into $get?

javascript - 让点击内部div不调用外部div的onClick函数

javascript - 如何在一个 html 文件中 "compile"AngularJS 应用程序并保持所有源内联。 ( Grunt )

javascript - angularjs 字符串和字符串树

javascript - 在 Angular 1.5 中不编译嵌套组件的情况下测试组件

javascript Thrift 客户端挂起

javascript - jquery:当用户单击div关闭时分别隐藏同一类的每个div?

javascript - 将 Javascript 从 Node express 发送到 Angular 服务

javascript - FckEditor IE 和图像移动时发生奇怪的崩溃

javascript - 观察指令上的元素