Javascript 如何在AngularJS中正确注入模块

Javascript 如何在AngularJS中正确注入模块,javascript,angularjs,angular-services,Javascript,Angularjs,Angular Services,假设我有js/modules/auth js/modules/home js/modules/panel目录。我的主app.js如下所示: angular.module('myApp.homeApp', ['myApp.homeApp.services']); angular.module('myApp.auth', ['myApp.auth.services']); angular.module('myApp.panelApp', []); var myApp = angular.modul

假设我有js/modules/auth js/modules/home js/modules/panel目录。我的主app.js如下所示:

angular.module('myApp.homeApp', ['myApp.homeApp.services']);
angular.module('myApp.auth', ['myApp.auth.services']);
angular.module('myApp.panelApp', []);
var myApp = angular.module('myApp', ['ngCookies', 'ui.router', 'ui.bootstrap', 'angular.css.injector', 'myApp.auth', 'myApp.homeApp', 'myApp.panelApp'])
然后我像这样注射它们:

angular.module('myApp.homeApp', ['myApp.homeApp.services']);
angular.module('myApp.auth', ['myApp.auth.services']);
angular.module('myApp.panelApp', []);
var myApp = angular.module('myApp', ['ngCookies', 'ui.router', 'ui.bootstrap', 'angular.css.injector', 'myApp.auth', 'myApp.homeApp', 'myApp.panelApp'])
我在js/modules/auth/services/authService.js中有两个工厂:

angular.module('myApp.auth.services', [])
.factory('Auth', function($http, $cookieStore)

angular.module('myApp.auth.services', [])
.factory('Users', function($http)
基本上,我正在努力实现 但当我在app.js中有一行:

myApp.run(['$rootScope', '$state', 'myApp.auth.services.Auth', function ($rootScope, $state, Auth)
我得到:未捕获错误:[$injector:unpr]未知提供程序:myApp.auth.services.AuthProvider


那么,有谁能给我一个如何正确注入模块-服务等的提示吗

不能用相同的名称初始化两个模块。您应该以不同的方式命名它,或者只是第二次调用它:
angular.module('some_name',[])
将初始化一个新模块,其中as
angular.module('some_name')
将调用现有模块

   angular.module('myApp.auth.services', [])
   .factory('Auth', function($http, $cookieStore)

   angular.module('myApp.auth.services')
   .factory('Users', function($http)

每个模块都应该注入依赖的库/模块

//module injection indicates Module definition. When you see `[]` is used, 
//a module is defined

angular.module('myApp.homeApp', ['ngRoute', 'ngResource']); //for example
angular.module('myApp.auth', []);
angular.module('myApp.panelApp', []);

var myApp = angular.module('myApp', ['ngCookies', 'ui.router', 'ui.bootstrap',
                                     'angular.css.injector', 'myApp.auth',  
                                     'myApp.homeApp', 'myApp.panelApp'])
从今以后,要使用该模块,您不需要注入依赖项,因此

angular.module('myApp.auth.services', [])
.factory('Auth', function($http, $cookieStore)

angular.module('myApp.auth.services')
.factory('Users', function($http)

一旦定义了一个模块,就必须直接使用它,而不是每次使用它时都定义它。

您在这里指的不是名为“myApp.auth.services.auth”的模块吗?我看不出这里有什么定义。