Angularjs 我的角度模块如何使用我没有的服务';t定义为依赖?

Angularjs 我的角度模块如何使用我没有的服务';t定义为依赖?,angularjs,dependency-injection,angularjs-module,Angularjs,Dependency Injection,Angularjs Module,我已将我的角度模块定义如下: var myApp = angular.module('myApp', [ 'ngRoute', 'facebook', 'myApp.services', 'myApp.directives', 'myApp.controllers' ]); angular.module('myApp.services', []); angular.module('myApp.directives', []); angular.modul

我已将我的角度模块定义如下:

var myApp = angular.module('myApp', [
    'ngRoute',
    'facebook',
    'myApp.services',
    'myApp.directives',
    'myApp.controllers'
]);

angular.module('myApp.services', []);
angular.module('myApp.directives', []);
angular.module('myApp.controllers', []);
myApp.config([
    '$routeProvider',
    'FacebookProvider',
    function ($routeProvider, FacebookProvider) {

        FacebookProvider.init('***********');
}]);
现在,我的主应用程序模块“myApp”的配置如下:

var myApp = angular.module('myApp', [
    'ngRoute',
    'facebook',
    'myApp.services',
    'myApp.directives',
    'myApp.controllers'
]);

angular.module('myApp.services', []);
angular.module('myApp.directives', []);
angular.module('myApp.controllers', []);
myApp.config([
    '$routeProvider',
    'FacebookProvider',
    function ($routeProvider, FacebookProvider) {

        FacebookProvider.init('***********');
}]);
这个moudle,即“myApp”将能够使用“FacebookProvider”,因为它被定义为上面“myApp”moudle的依赖项,这是非常好的

现在让我们转到包装在模块“myApp.controllers”下的控制器:

主要问题:当我没有将“Facebook”定义为我的“myApp.Controller”模块的依赖项时,我如何使用它

第二个问题:哪种方法是编写控制器、服务、指令等的最佳方法。我的意思是将它们包装在不同的模块中,还是将它们包装在主要的单个应用程序模块中。如果我们为应用程序的每个功能创建不同的模块,那么当我们仅在主模块(如“myApp”)中定义依赖关系时,依赖关系系统如何为功能模块工作

提前感谢您的回复

谢谢, 的曼尼施·库马
[学习角度]

广告第一个问题:您在“myApp”模块中将“myApp.Controller”和“facebook”定义为依赖项。您可以在任何其他模块中使用该列表中的任何模块。您甚至可以有一个“myApp.core”模块,该模块将定义应用程序的核心依赖项,并且您仍然可以在主应用程序的模块列表中列出的每个其他模块中使用所有这些模块

广告第二个问题:对于一个小应用程序,你不需要使用很多模块。也许只是模块化可重用的东西。对于较大的应用程序,最好按功能将应用程序的各个部分划分为模块。不要像myApp.controllers等那样按类型分开。例如,您可以有一个可重用的身份验证模块,然后将其放入所有未来的应用程序中。或用于日志记录等,或用于您的管理区域

John Pappa的风格指南是最佳实践的一个很好的参考点