模板URL上使用的angularjs 1.5组件DI
我已经检查了如何对控制器进行注入。但在控制器之前,我找不到注入组件的方法 在下面的示例中,我试图从我在另一个地方创建的常量中获取domainUrl 是否可以执行注入来检索域URL模板URL上使用的angularjs 1.5组件DI,angularjs,angularjs-components,Angularjs,Angularjs Components,我已经检查了如何对控制器进行注入。但在控制器之前,我找不到注入组件的方法 在下面的示例中,我试图从我在另一个地方创建的常量中获取domainUrl 是否可以执行注入来检索域URL 这也是我遇到的一个问题。 不幸的是,我没有找到一个简单的解决办法 我使用angular.directive()注入url的服务。使用angular.component()时,您无法再执行此操作 您可以使用普通JS对象。或者是单身汉 我使用Typescript并最终使用了一个具有静态属性的类来完成这项工作 编辑: 只是想
这也是我遇到的一个问题。 不幸的是,我没有找到一个简单的解决办法 我使用angular.directive()注入url的服务。使用angular.component()时,您无法再执行此操作 您可以使用普通JS对象。或者是单身汉 我使用Typescript并最终使用了一个具有静态属性的类来完成这项工作 编辑: 只是想用一个小的更新来扩展这个答案 因为我们不能再使用AngularJS的依赖项注入机制,所以如果您想使用一些额外的代码来生成URL,文件的加载顺序很重要 在下面的Typescript代码中,需要在加载任何角度代码之前加载MyRoutes类,这样才能工作
class NgMyComponent implements ng.IComponentOptions {
templateUrl = MyRoutes.templateBase + 'my-component.html';
controller = MyComponent;
controllerAs = 'vm';
}
class MyComponent {
}
angular
.module('MyModule')
.component('myComponent', new NgMyComponent);
缓解这种情况的一种简单方法是为模板Url使用一个函数,因此只有在实际创建组件时才会构建Url,如下所示:
templateUrl = () => MyRoutes.templateBase + 'my-component.html';