我正在使用以下文件处理新的Angular项目:
//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) {
// ...
}]);
答案 0 :(得分:1)
Zenorbi提到的是绝对正确的。但是,考虑添加此信息以得出更好的答案。
您可以将应用程序模块化为多个细分,以便于理解。细分可以是 以不同的方式完成。
基于服务类型 - 这对小型应用程序很有用
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) {
// ...
}]);
根据每个模块的用途。例如,您可以将图表相关类分隔为单独的模块,并将其与主代码库隔离。这将允许其他人进行并行编程,因为该模块可以独立于父模块执行。
答案 1 :(得分:0)
这两种实现都是有效的,但模块系统是为了确保将更大的应用程序分离到模块中。如果serviceA,serviceB,ctrlA和ctrlB密切相关,您可以将它们捆绑到一个模块中。如果您想在其他地方提供服务,可以创建一个名为mainApp.services
的模块。
由您决定如何构建代码,但模块存在是有原因的。要有多个东西"在他们中间。