在指令的templateUrl中获取$ rootScope

时间:2017-07-27 13:20:05

标签: angularjs angularjs-directive

是否可以在指令的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

1 个答案:

答案 0 :(得分:2)

是的,您可以在控制器,服务等中注入指令中的任何内容:

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