在角度组件中动态分配templateUrl

时间:2016-06-24 19:46:46

标签: javascript angularjs angularjs-directive angularjs-components

我有一个角度组件,我正在以1.5的角度构建。它看起来像这样:

var module = angular.module("ncRelationshipSearch");

module.component("relationshipSearch", {
    templateUrl: <need to dynamically assign>,
    controllerAs: "vm",
    controller: ['config', function(config){
         ... config provider here knows about templateURL...
    }
}

我需要以某种方式分配templateUrl。我有一个可以提供URL的config提供程序,但我无法在组件定义时注入它。有没有办法通过绑定获取URL或稍后在控制器中设置它?

1 个答案:

答案 0 :(得分:3)

您可以使用templateUrl的功能注入service/factory。您实际上可以通过config函数注入templateUrl提供程序。

module.component("relationshipSearch", {
    templateUrl: function(config){
       //play here with service variables generate templateUrl
       //other code can also lie here. :)
       return config.myTemplatUrl;
    },
    controllerAs: "vm",
    controller: ['config', function(config){
         ... config provider here knows about templateURL...
    }
}