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) {
// ...
}]);
根据每个模块的用途。例如,您可以将与图表相关的类分离到单独的模块,并将其与主代码库隔离。这将允许其他人进行并行编程,因为此模块可以独立于父模块运行。是的,这很有意义。这是一个新的应用程序,模块还没有最好的名字,因为我们正在搞清楚。