在Angular中使用常量进行子模块依赖注入

时间:2014-06-02 12:58:52

标签: angularjs dependency-injection

我有一个有角度的应用程序,让我们称它为Foo。所以我已经定义了 angular.module('Foo'), 它还有一个constant,定义为 angular.module('Foo').constant('constantObj', {x: 'y'})

我还有两个定义为angular.module('Baz')angular.module('Moo')的子模块,它们被注入angular.module('Foo')

angular.module('Foo', ['Baz', 'Moo'])

现在我收到此错误:

Error: [$injector:modulerr] Failed to instantiate module Foo due to:

[$injector:modulerr] Failed to instantiate module Baz due to:

[$injector:unpr] Unknown provider: constantObj

我正在尝试使用常量,将其注入子模块配置中,但是我收到此错误消息。任何人都可以帮我解释如何在Foo中定义的所有子模块中使用常量?

1 个答案:

答案 0 :(得分:1)

对于Baz中使用constantObj的某些工件(服务,控制器等),Baz必须依赖于Foo,已经依赖于Baz。这是一个循环依赖,Angular会抱怨。

解决方案是定义第三个模块,比如Xxx,在其中定义constantObj,并且所有需要constantObj的模块也依赖于Xxx。