我正在使用角度种子模板来构建我的应用程序。最初,我将所有JavaScript代码放入一个文件中main.js
。该文件包含我的模块声明,控制器,指令,过滤器和服务。该应用程序可以像这样正常运行,但是随着我的应用程序变得越来越复杂,我担心可伸缩性和可维护性。我注意到,每个角度种子模板都有单独的文件,因此我尝试将我的代码从单个main.js
文件分发到该问题标题中提到的每个其他文件中,并且可以在app/js
每个角度的目录中找到种子模板。
我的问题是:如何管理依赖关系以使应用程序正常工作?在这方面,此处找到的现有文档不是很清楚,因为给出的每个示例都显示一个JavaScript源文件。
我所拥有的一个例子是:
app.js
angular.module('myApp',
['myApp.filters',
'myApp.services',
'myApp.controllers']);
controllers.js
angular.module('myApp.controllers', []).
controller('AppCtrl', [function ($scope, $http, $filter, MyService) {
$scope.myService = MyService; // found in services.js
// other functions...
}
]);
filter.js
angular.module('myApp.filters', []).
filter('myFilter', [function (MyService) {
return function(value) {
if (MyService.data) { // test to ensure service is loaded
for (var i = 0; i < MyService.data.length; i++) {
// code to return appropriate value from MyService
}
}
}
}]
);
services.js
angular.module('myApp.services', []).
factory('MyService', function($http) {
var MyService = {};
$http.get('resources/data.json').success(function(response) {
MyService.data = response;
});
return MyService;
}
);
main.js
/* This is the single file I want to separate into the others */
var myApp = angular.module('myApp'), []);
myApp.factory('MyService', function($http) {
// same code as in services.js
}
myApp.filter('myFilter', function(MyService) {
// same code as in filters.js
}
function AppCtrl ($scope, $http, $filter, MyService) {
// same code as in app.js
}
如何管理依赖关系?
提前致谢。
angular.module('myApp.services', ['myApp.services']);
没有运气就进入了app.js。
angular.module('myApp.services', ['myApp.server', 'myApp.somethingElse'])
。
angular.module('myApp.service1', ['myApp.service1', 'myApp.service2'])
原样阅读。否则,我不会将myApp.services作为其自身的依赖项包含在内。