Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
模板URL上使用的angularjs 1.5组件DI_Angularjs_Angularjs Components - Fatal编程技术网

模板URL上使用的angularjs 1.5组件DI

模板URL上使用的angularjs 1.5组件DI,angularjs,angularjs-components,Angularjs,Angularjs Components,我已经检查了如何对控制器进行注入。但在控制器之前,我找不到注入组件的方法 在下面的示例中,我试图从我在另一个地方创建的常量中获取domainUrl 是否可以执行注入来检索域URL 这也是我遇到的一个问题。 不幸的是,我没有找到一个简单的解决办法 我使用angular.directive()注入url的服务。使用angular.component()时,您无法再执行此操作 您可以使用普通JS对象。或者是单身汉 我使用Typescript并最终使用了一个具有静态属性的类来完成这项工作 编辑: 只是想

我已经检查了如何对控制器进行注入。但在控制器之前,我找不到注入组件的方法

在下面的示例中,我试图从我在另一个地方创建的常量中获取domainUrl

是否可以执行注入来检索域URL


这也是我遇到的一个问题。 不幸的是,我没有找到一个简单的解决办法

我使用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';