내 응용 프로그램을 구성하기 위해 angular-seed 템플릿을 사용하고 있습니다. 처음에는 모든 JavaScript 코드를 단일 파일 인 main.js
. 이 파일에는 내 모듈 선언, 컨트롤러, 지시문, 필터 및 서비스가 포함되어 있습니다. 응용 프로그램은 이와 같이 잘 작동하지만 응용 프로그램이 더 복잡 해짐에 따라 확장 성과 유지 관리가 걱정됩니다. angular-seed 템플릿에 이들 각각에 대해 별도의 파일이 있음을 알았으므로 단일 main.js
파일의 코드 를이 질문의 제목에 언급 된 다른 파일 각각 으로 배포하려고 시도 app/js
했으며 angular 의 디렉토리 에서 찾았습니다. -씨앗 템플릿.
내 질문은 응용 프로그램이 작동하도록 종속성을 어떻게 관리합니까? 여기에 있는 기존 문서 는 주어진 각 예제가 단일 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...
}
]);
filters.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를 자체 종속성으로 포함하지 않았을 것입니다.