Je suis à l'aide de l' angulaire de pépins de modèle pour la structure de mon application. Au départ, j'ai mis tout mon code JavaScript dans un fichier unique, main.js
. Ce fichier contenait mon module de déclaration, des contrôleurs, des directives, des filtres et des services. L'application fonctionne très bien comme ça, mais je suis inquiet sur l'évolutivité et la maintenabilité que ma demande devient de plus en plus complexe. J'ai remarqué que l'angle de graines de modèle a des fichiers distincts pour chacun d'eux, j'ai donc essayé de distribuer mon code à partir de la seule main.js
fichier dans chacun des autres fichiers mentionnés dans le titre de cette question et a trouvé dans l' app/js
répertoire de l' angulaire de pépins de modèle.
Ma question est: comment puis-je gérer les dépendances afin d'obtenir l'application au travail? La documentation existante trouvé ici n'est pas très claire à ce sujet, puisque chacun de ces exemples montre un seul fichier source JavaScript.
Un exemple de ce que j'ai, c'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 puis-je gérer les dépendances?
Merci à l'avance.