AngularJS控制器和服务创建

AngularJS控制器和服务创建,angularjs,service,controller,Angularjs,Service,Controller,我正在使用以下文件处理一个新的角度项目: //app.js var mainApp = angular.module('mainApp', ['serviceA', 'serviceB', "ctrlA", 'ctrlB']); //ctrlA.js var ctlA = angular.module('serviceA', []); ctlA.controller('menuController', ['$scope', 'serviceA', function($scope, servic

我正在使用以下文件处理一个新的角度项目:

//app.js
var mainApp = angular.module('mainApp', ['serviceA', 'serviceB', "ctrlA", 'ctrlB']);

//ctrlA.js
var ctlA = angular.module('serviceA', []);
ctlA.controller('menuController', ['$scope', 'serviceA', function($scope, serviceA) {
  // ...
}]);
有没有理由不这样做

//ctrlB.js
angular.module('mainApp')
.controller('ctrlB', ['$scope', 'serviceA', function($scope, serviceA) {
  // ...
}]);

这两种实现都是有效的,但模块系统的存在是为了确保将更大的应用程序划分为模块。如果serviceA、serviceB、ctrlA和ctrlB密切相关,您还可以将它们捆绑到一个模块中。如果您想在其他地方提供服务,可以创建一个名为
mainApp.services
的模块


如何构造代码取决于您,但模块的存在是有原因的。有不止一个“东西”在里面。

泽诺比所提到的绝对正确。但是,考虑添加此信息以得出更好的答案。

您可以将应用程序模块化为多个部分,使其易于理解。分割可以是 以不同的方式完成

基于服务类型-这对于小型应用程序非常有用

var mainApp = angular.module('mainApp', [
    'app.controllers',      // Controllers
    'app.directives',       // Directives
    'app.filters',          // Filters
    'app.services'          // Services
]);
模块的示例实现

var ctrls = angular.module('app.controllers');
ctrls.controller('menuController', ['$scope', 'serviceA', function($scope, serviceA) {
  // ...
}]);

根据每个模块的用途。例如,您可以将与图表相关的类分离到单独的模块,并将其与主代码库隔离。这将允许其他人进行并行编程,因为此模块可以独立于父模块运行。

是的,这很有意义。这是一个新的应用程序,模块还没有最好的名字,因为我们正在搞清楚。