我的指令需要一个常量(MODULE_ROOT_URL)来生成模板路径。 通过指令语法,我可以将常量注入到目录工厂函数中。 我如何将此指令转换为Angular 1.5组件? 是否有可能将服务注入到Angular 1.5组件中?
谢谢。
更新:我知道该服务可以注入组件控制器。 但是,如何为组件的templateUrl属性注入服务?
Update2:请参阅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' } }]);My directive needs a constant (MODULE_ROOT_URL) to generate the template path. With directive syntax, I can inject the constant to the directory factory function. How can I convert this directive to Angular 1.5 components? Is it possible to inject a service into Angular 1.5 components?
Thanks.
Update: I know the service can be injected into the component controller. But how can I inject a service for a component's templateUrl property?
Update2: Please see plnkr. I create both of directive and component version. The directive version works fine. But the component version has error [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' } }]);最满意答案
templateUrl和template可以是可以注入的函数和依赖关系。
angular.module('AbcModule') .component('abcDirective', { restrict: 'E', templateUrl: function(MODULE_ROOT_URL) { return MODULE_ROOT_URL + 'abc/abc.tpl.html'; } });templateUrl and template can be functions and dependencies can injected.
angular.module('AbcModule') .component('abcDirective', { restrict: 'E', templateUrl: function(MODULE_ROOT_URL) { return MODULE_ROOT_URL + 'abc/abc.tpl.html'; } });更多推荐
发布评论