我有一个有角度的应用程序,让我们称它为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中定义的所有子模块中使用常量?
答案 0 :(得分:1)
对于Baz中使用constantObj
的某些工件(服务,控制器等),Baz必须依赖于Foo,已经依赖于Baz。这是一个循环依赖,Angular会抱怨。
解决方案是定义第三个模块,比如Xxx,在其中定义constantObj
,并且所有需要constantObj
的模块也依赖于Xxx。