-1

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

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”)的配置如下:

myApp.config([
    '$routeProvider',
    'FacebookProvider',
    function ($routeProvider, FacebookProvider) {

        FacebookProvider.init('***********');
}]);

这个模块,即“myApp”将能够使用“FacebookProvider”,因为它被定义为上面对“myApp”模块的依赖,这非常好。

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

/* Controllers */
angular.module('myApp.controllers').controller('loginCtrl', [
    '$scope',
    '$timeout',
    'Facebook',
    function ($scope, $timeout, Facebook) {
         .......
         .......
}]);

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

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

先谢谢大家的回复!!!

谢谢,Manish Kumar [学习 Angular]

4

1 回答 1

1

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

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

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

https://github.com/johnpapa/angularjs-styleguide#application-structure

于 2014-12-10T10:34:28.990 回答