应用/提供商循环依赖



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

现在是这样的:

var myApp = angular.module('myApp', []);
myApp.config(function(myServiceProvider) {
....etc.

提供者定义如下:

angular.module('myApp').provider('myService', function () {
...etc.

如果我先加载应用,provider还没有出现,如果我先加载provider, app还没有出现。解决这个问题的最好方法是什么?

你的模块定义包括模块依赖项,而不是服务或提供商。

应该是:

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

配置块总是在你的提供商初始化之后执行。没有循环依赖问题。

文件1:Define module

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

文件2:Define providers

angular.module('myApp').provider('myService',function() {...});

文件3:Define config block

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

<script src="/angular.js"></script>
<script src="/file1.js"></script>
<script src="/file2.js"></script>
<script src="/file3.js"></script>

文件的顺序很重要

第一个文件:

var myApp = angular.module('myApp', []);
myApp.config(function(myServiceProvider) {
....etc.

,第二个文件:

myApp.provider('myService', function () {
...etc.

变量myApp是一个全局变量,你可以在网站的任何地方访问它。你可以看看Yeoman项目,它是一个生成器,可以创建angularjs应用程序的结构,并添加许多很酷的功能。

最新更新