Angularjs - 指令链接函数中的 $rootScope

标签 angularjs angularjs-directive angularjs-scope rootscope

我问这个问题是因为我不太清楚如何将 rootscope 作为传递给指令的依赖项

我有一个指令需要显示 $rootScope 中的一些信息...

我认为我需要将 $rootScope 传递给指令,但是当我编写这样的指令时,它似乎可以工作。

.directive("myBar", function () {
 return {
    restrict: "E",
    transclude: true,
    replace: true,
    template:   '<div>' + 
                '<span ng-transclude></span>' + 
                '{{rsLabels.welcome}} {{rsUser.firstName}}!' + 
                '</div>'
}
})

我什么时候需要这样做?

.directive("myBar", function ($rootScope) {
 return {
    restrict: "E",
    transclude: true,
    replace: true,
    template:   '<div>' + 
                '<span ng-transclude></span>' + 
                '{{rsLabels.welcome}} {{rsUser.firstName}}!' + 
                '</div>'
}
})

如果我在指令的链接函数中需要 rootScope,我可以以及如何使用 rootScope - 或者我应该在指令的 Controller 中使用 rootScope?

.directive("myBar", function ($rootScope) {
 return {
    restrict: "E",
    transclude: true,
    replace: true,
    link: function (scope, element, attrs, rootScope) {
        rootScope.rsUser = { firstName: 'Joe' };
        rootScope.rsUser = { welcome: 'Welcome' };
    },
    template:   '<div>' + 
                '<span ng-transclude></span>' + 
                '{{rsLabels.welcome}} {{rsUser.firstName}}!' + 
                '</div>'
}
})

我的 rootScope 数据在 run 函数中定义

 .run(function ($rootScope) {

  $rootScope.rsLabels = { 
      welcome: 'Welcome'
  };

  $rootScope.rsUser = { 
     firstName: 'Joe'
  };
});

谢谢!

最佳答案

你可以这样做:

{{$root.rsLabels.welcome}}

关于Angularjs - 指令链接函数中的 $rootScope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21736824/

相关文章:

angularjs - 使用 ngModel 和普通 ngController 而不是指令?

angularjs - Angular 谷歌地图搜索框指令: events don't fire when trying to restrict the search (with autocomplete option)

javascript - 如何使用 for 循环迭代 Angular $scope 变量

javascript - 在 HTML 表格上拖动选择(带有 colspan/rowspan 的正方形/矩形部分)

javascript - 使用 jquery 从 Angular 表达式中获取内容失败

javascript - NG-model 值未从指令元素中定义

javascript - 用于包含文件内容的 AngularJS 指令

javascript - Angular 指令修改范围,但不在 setTimeout 之后

angularjs - 从另一个服务调用 AngularJs Controller 方法

javascript - 数据未填充到表中