javascript - 是否可以将服务注入(inject) Angular 1.5 组件的 templateUrl 属性?

标签 javascript angularjs angularjs-directive angularjs-components

我的指令需要一个常量 (MODULE_ROOT_URL) 来生成模板路径。使用指令语法,我可以将常量注入(inject)目录工厂函数。 如何将此指令转换为 Angular 1.5 组件? 是否可以将服务注入(inject) Angular 1.5 组件?

谢谢。

更新: 我知道可以将服务注入(inject)组件 Controller 。 但是如何为组件的 templateUrl 属性注入(inject)服务?

更新2: 请参阅 plnkr。我创建了指令和组件版本。 指令版本工作正常。但是组件版本有错误 [ngTransclude:orphan]

https://plnkr.co/edit/DMumuIpXJY6RDCX6XObz?p=preview

angular.module('AbcModule')
       .directive('abcDirective', ['MODULE_ROOT_URL', function (MODULE_ROOT_URL) {
           return {
               restrict: 'E',
               templateUrl:  MODULE_ROOT_URL + 'abc/abc.tpl.html'
           }

       }]);

最佳答案

templateUrltemplate 可以是函数,可以注入(inject)依赖。

angular.module('AbcModule')
.component('abcDirective',  {
     restrict: 'E',
     templateUrl:  function(MODULE_ROOT_URL) {
          return MODULE_ROOT_URL + 'abc/abc.tpl.html';
     }
});

关于javascript - 是否可以将服务注入(inject) Angular 1.5 组件的 templateUrl 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36603598/

相关文章:

javascript - CSV、PDF、Excel 文件在数据表的导出扩展中作为 blob 下载

Javascript 函数只看到作为参数传入的全局变量的默认值

angularjs - 与父值匹配的 Angular 嵌套ng-repeat过滤器项

javascript - 在 AngularJS 中更新父作用域变量

angularjs - 如何通过自定义 Angular 指令有条件地应用模板?

javascript - 使用 GM 禁用页面的焦点检查功能

javascript - Dart 问题 :js calls when compiled to JS

angularjs - Angular 限制不适用于 ng-model 或 ng-option

javascript - 自动滚动 AngularJS 似乎不起作用

javascript - Angular JS :controller syntax