2017-07-27 64 views
0

是否可以在指令的templateUrl中获取$rootScope对象?
我的意思是,如果这是我的指令的功能:

function AttributesCard() { 

     return { 
      restrict: "AE", 
      templateUrl: function ($rootScope) { 
       return $rootScope.baseUrl + "/attributesCard.directive.html"; 
      }, 
      controller: AttributesCardController, 
      controllerAs: "vm", 
      scope: { 
       educationPlace: "=", 
       privileges: "=" 
      }, 
      bindToController: true 
     }; 
    } 

我怎么得到templateUrl的函数中的$ rootScope对象?我在其中得到了一些其他的东西。或者,也许而不是$ rootScope可能为我获取这些数据的服务。

感谢,
ashilon

+0

的可能的复制[如何访问指令templateUrl $ rootScope变量](https://stackoverflow.com/questions/36007277/how-to-access-rootscope-variable-from-directive-templateurl) – Vivz

回答

2

是的,你可以注入你的指令东西就像在你的控制器,服务等:

app.directive("name", ["$rootScope", "myService", function($rootScope, myService) { 
    // .. 
    templateUrl: function() { 
     var baseUrl = $rootScope.baseUrl; // or myService.baseUrl; 
     return baseUrl + "/attributesCard.directive.html"; 
    }, 
    // .. 
}]); 
+0

谢谢devqon。你的回答帮了我很多。我只是做了一点改变:而不是像你所显示的在匿名函数中注入$ rootScope对象,我将它注入函数AttributesCard中,如下所示:function AttributesCard($ rootScope){...} – ashilon