我已将角度模块定义如下:
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('***********');
}]);
这个moudle即" myApp"将能够使用" FacebookProvider",因为它被定义为以上依赖于" myApp" moudle,这很好。
现在让我们转到控制器,它包含在模块" myApp.controllers":
下/* Controllers */
angular.module('myApp.controllers').controller('loginCtrl', [
'$scope',
'$timeout',
'Facebook',
function ($scope, $timeout, Facebook) {
.......
.......
}]);
主要问题:我如何使用" Facebook"当我没有把它定义为我的" myApp.controllers"模块?
次要问题:这是编写控制器,服务,指令等的最佳方法。我的意思是将它们包装在不同的模块中或将它们包装在主要的单一应用程序模块中。如果我们为应用程序的每个功能创建不同的模块,那么依赖系统如何为我们的功能模块工作,因为我们只在我们的主模块中定义依赖关系,例如" myApp"?
提前感谢回复!!!
谢谢, Manish Kumar [学习角度]
答案 0 :(得分:1)
广告第一个问题:您定义了两个“myApp.controllers”'和' facebook'作为你的'myApp'中的依赖项模块。您可以在任何其他模块中使用该列表中的任何模块。你甚至可以拥有一个'myApp.core'模块,然后定义应用程序的核心依赖关系,您仍然可以在主应用程序的模块列表中列出的每个其他模块中使用它们。
广告第二个问题:对于小型应用,您不需要使用许多模块。只是模块化可重复使用的东西。对于较大的应用程序,最好将应用程序的各个部分与模块分开。不要像myApp.controllers等类型分开。例如,您可以使用可重复使用的模块进行身份验证,然后将所有未来的应用程序放入其中。或者用于记录等。或者用于管理区域。
最佳实践的一个很好的参考点是John Pappa的风格指南。
https://github.com/johnpapa/angularjs-styleguide#application-structure