我已经检查了如何对控制器进行注入。但我找不到在控制器之前注入组件的方法。
在下面的示例中,我试图从我在另一个地方创建的常量中获取 domainUrl。
是否可以进行注入来检索domainUrl?
这也是我遇到的一个问题。不幸的是,我没有找到一个简单的解决方案。
使用 angular.directive() 我正在注入一个 url 的服务。使用 angular.component() 你不能再这样做了。
您可以使用普通的 JS 对象。或者也许是一个单身人士。
我使用 Typescript 并最终使用具有静态属性的类来执行此操作。
编辑:
只想通过一个小更新来扩展这个答案。
因为我们不能再使用 AngularJS 的依赖注入机制,如果你想使用一些额外的代码来生成 URL,加载文件的顺序很重要。
在下面的 Typescript 代码中,需要在任何 Angular 代码之前加载 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';