Estoy usando la plantilla de semilla angular para estructurar mi aplicación. Inicialmente pongo toda mi código JavaScript en un solo archivo, main.js
. Este archivo contenía mi declaración de módulo, controladores, directivas, filtros y servicios. La aplicación funciona bien así, pero me preocupa la escalabilidad y la capacidad de mantenimiento a medida que mi aplicación se vuelve más compleja. Me di cuenta de que la plantilla de semilla angular tiene archivos separados para cada uno de estos, así que intenté distribuir mi código desde el main.js
archivo único en cada uno de los otros archivos mencionados en el título de esta pregunta y que se encuentran en el app/js
directorio de angular -plantilla de semillas .
Mi pregunta es: ¿cómo administro las dependencias para que la aplicación funcione? La documentación existente que se encuentra aquí no es muy clara a este respecto, ya que cada uno de los ejemplos dados muestra un solo archivo fuente de JavaScript.
Un ejemplo de lo que tengo es:
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...
}
]);
filtros.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
}
¿Cómo gestiono las dependencias?
Gracias por adelantado.