2017-07-27 77 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