Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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
Javascript 角模与依赖注入_Javascript_Angularjs_Dependency Injection - Fatal编程技术网

Javascript 角模与依赖注入

Javascript 角模与依赖注入,javascript,angularjs,dependency-injection,Javascript,Angularjs,Dependency Injection,假设:我使用一个名为常量的模块 我想在另一个模块中使用此常量A: angular.module("moduleThatUseConstants", ["constants"]) .service("B", ["A", Services.B]); // here I use A 真管用!但是,如果我已经有了另一个常量或控制器等称为A呢 问题:如何指定A来自模块常量?我试过: .service("B", ["constants.A", Services.B]); 但这不起作用$injector

假设:我使用一个名为常量的模块

我想在另一个模块中使用此常量A:

angular.module("moduleThatUseConstants", ["constants"])
.service("B", ["A", Services.B]); // here I use A
真管用!但是,如果我已经有了另一个常量或控制器等称为A呢

问题:如何指定A来自模块常量?我试过:

.service("B", ["constants.A", Services.B]); 

但这不起作用$injector:unpr未知提供程序常量。A

您无法实现这一点。具有相同名称的后一个将始终被解析。这是Angular 1.x中DI的缺点之一。我希望在Angular 2 DI中看到解决方案。

如果您已经有另一个名为a的常量或控制器等将在最后包含时使用,您不能指定从何处获取服务它将使用最后包含的a。但是我不能指定依赖项的源模块吗?您不能指定,它可能在angular 2.0中得到解决,作为解决方法,您可以使用前缀,如示例angular.moduleconstants,[].constantconstants.A,10;并像.serviceB、[constants.A,Services.B]那样使用它;
angular.module("moduleThatUseConstants", ["constants"])
.service("A", [Services.A]); 
.service("B", ["A", Services.B]); // ???
.service("B", ["constants.A", Services.B]);