Uygulamamı yapılandırmak için açısal çekirdek şablonunu kullanıyorum . Başlangıçta tüm JavaScript kodumu tek bir dosyaya koyuyorum main.js
. Bu dosya benim modül bildirimimi, denetleyicileri, yönergeleri, filtreleri ve hizmetleri içeriyordu. Uygulama böyle iyi çalışıyor, ancak uygulamam daha karmaşık hale geldikçe ölçeklenebilirlik ve sürdürülebilirlik konusunda endişeliyim. Açısal çekirdek şablonunun bunların her biri için ayrı dosyalara sahip olduğunu fark ettim, bu yüzden kodumu tek main.js
dosyadan bu soruya başlıkta belirtilen app/js
ve açısal dizinde bulunan diğer dosyaların her birine dağıtmaya çalıştım. tohum şablonu.
Sorum şu: uygulamayı çalıştırmak için bağımlılıkları nasıl yönetirim? Burada bulunan mevcut belgeler , verilen örneklerin her biri tek bir JavaScript kaynak dosyası gösterdiğinden bu konuda çok açık değildir.
Sahip olduğum şeye bir örnek:
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
}
Bağımlılıkları nasıl yönetirim?
Şimdiden teşekkürler.