我想在启动AngularJs应用程序时使用提供程序设置一些配置设置,但我希望将应用程序和提供程序放在2个单独的文件中。
这就是我现在的方式:
var myApp = angular.module('myApp', []);
myApp.config(function(myServiceProvider) {
....etc.
提供者的定义如下:
angular.module('myApp').provider('myService', function () {
...etc.
如果我首先加载应用程序,那么提供程序还没有,如果我首先加载提供程序,那么应用程序还没有。 解决这个问题的最佳方法是什么?
答案 0 :(得分:2)
您的模块定义包括模块依赖项 - 而不是服务或提供程序。
应该是:
var myApp = angular.module('myApp', []);
配置块始终在初始化提供程序后执行。没有循环依赖问题。
文件1:定义模块
angular.module('myApp', []);
文件2:定义提供者
angular.module('myApp').provider('myService',function() {...});
文件3:定义配置块
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>
文件顺序很重要。
答案 1 :(得分:1)
在你的第一个档案中:
var myApp = angular.module('myApp', []);
myApp.config(function(myServiceProvider) {
....etc.
并在您的第二个文件中:
myApp.provider('myService', function () {
...etc.
变量myApp是一个全局变量,您可以在网站的任何位置访问它。 你可以看看Yeoman project,它是一个生成你的angularjs应用程序结构并添加很多很酷功能的生成器。