Angularjs 应用程序/提供商循环依赖关系

Angularjs 应用程序/提供商循环依赖关系,angularjs,provider,Angularjs,Provider,我想在启动AngularJs应用程序时使用提供商设置一些配置设置,但我想将应用程序和提供商放在两个单独的文件中 这就是我现在拥有它的方式: var myApp = angular.module('myApp', []); myApp.config(function(myServiceProvider) { ....etc. 提供者的定义如下: angular.module('myApp').provider('myService', function () { ...etc. 如果我先加载

我想在启动AngularJs应用程序时使用提供商设置一些配置设置,但我想将应用程序和提供商放在两个单独的文件中

这就是我现在拥有它的方式:

var myApp = angular.module('myApp', []);

myApp.config(function(myServiceProvider) {
....etc.
提供者的定义如下:

angular.module('myApp').provider('myService', function () {
...etc.
如果我先加载应用程序,则提供商还不在那里;如果我先加载提供商,则应用程序还不在那里。
解决这个问题的最佳方法是什么?

您的模块定义包括模块依赖项,而不是服务或提供者

应该是:

var myApp = angular.module('myApp', []);
配置块总是在提供程序初始化后执行。不存在循环依赖性问题

文件1:定义模块

angular.module('myApp', []);
文件2:定义提供者

angular.module('myApp').provider('myService',function() {...});
文件3:定义配置块

angular.module('myApp').config(function(myServiceProvider) { ... });
HTML:


文件的顺序很重要。

在第一个文件中:

var myApp = angular.module('myApp', []);

myApp.config(function(myServiceProvider) {
....etc.
在第二个文件中:

myApp.provider('myService', function () {
...etc.
变量myApp是一个全局变量,您可以在网站的任何地方访问它。
你可以看看,这是一个生成器,它创建了你的angularjs应用程序结构,并添加了很多很酷的功能。

my bad,但删除它仍然会产生同样的问题,可能是从myApp.config要求注入时开始的。你的模块定义必须有一个空的模块数组作为依赖项。否则,您将尝试检索尚未定义的模块。是的,抱歉,但仍然存在相同的问题。啊,我想我知道问题是什么。模块定义和配置方法调用不能在同一个文件中。提供程序尚未定义。@Maarten:注意:Angular verison
1.3.0-beta.8
及更高版本中的情况发生了变化。从该版本开始,
.config()
块在加载服务等后执行,因此外观顺序不起作用。也请看,这只是将提供者添加到应用程序的不同语法,但它并不能解决我的问题
myApp.provider('myService', function () {
...etc.