我想在启动我的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应用程序的结构,并添加许多很酷的功能。