问题将服务注入应用程序

时间:2016-10-18 15:59:52

标签: angularjs

目前我所拥有的是app.services模块,我将其注入我的应用程序中:

angular.module('app.services', []); // services/app.services.js
angular.module('App', ['app.services']); // app.js

这非常有效,直到我尝试将我的服务直接注入我的应用程序以节省空间(注入了许多其他依赖项)。所以我改为:

angular.module('App') // services/myService.js
.factory('MyService', [function() { // do stuff

这会导致错误:$ injector:nomod模块不可用。我无法弄清楚为什么这会引起一个问题,我在这个问题上做的研究没有回答我的具体问题。

1 个答案:

答案 0 :(得分:0)

所以我的问题是当我尝试注入我的服务时'App'不可用。问题是我将脚本加载到页面的顺序。最初我把它设置为:

<script src="services/myService.js"></script>
<script src="app.js"></script>
// changed to
<script src="app.js"></script> // module 'App' loads
<script src="services/myService.js"></script> // 'MyService' is injected into 'App'

在使用控制器并确保首先注入主控制器然后注入相同模块(位于不同文件/目录中)的子控制器之前,我学到了很多。我这样做的主要原因是因为我不关心只有一个包含模块定义的脚本(我的研究是正确的方法)。

希望能有所帮助。