J'utilise le modèle angular-seed pour structurer mon application. Dans un premier temps, je mets tout mon code JavaScript dans un seul fichier, main.js
. Ce fichier contenait ma déclaration de module, les contrôleurs, les directives, les filtres et les services. L'application fonctionne bien comme ça, mais je m'inquiète de l'évolutivité et de la maintenabilité car mon application devient plus complexe. J'ai remarqué que le modèle angular-seed a des fichiers séparés pour chacun d'eux, j'ai donc tenté de distribuer mon code à partir du main.js
fichier unique dans chacun des autres fichiers mentionnés dans le titre de cette question et trouvés dans le app/js
répertoire de l' angular -modèle de graine .
Ma question est la suivante: comment gérer les dépendances pour que l'application fonctionne? La documentation existante trouvée ici n'est pas très claire à cet égard puisque chacun des exemples donnés montre un seul fichier source JavaScript.
Un exemple de ce que j'ai est:
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
}
Comment gérer les dépendances?
Merci d'avance.