Das habe ich gemacht. Aber es verwendet $ http, also hoffe ich, dass jemand eine bessere Lösung hat.
app.js:
var myModule = angular.module('myApp', []);
myModule.config(function($routeProvider, $locationProvider) {
$routeProvider.when('/', {
templateUrl: 'html/home.html',
controller: 'MainCtrl as ctrl',
resolve: {
initializeData: function($q, $timeout, myService) {
return myService.promiseToHaveData();
}
}
});
});
myService.js:
var myModule = angular.module('myApp');
myModule.service('myService', function($http, $q) {
var _this = this;
this.promiseToHaveData = function() {
var defer = $q.defer();
$http.get('someFile.json')
.success(function(data) {
angular.extend(_this, data);
defer.resolve();
})
.error(function() {
defer.reject('could not find someFile.json');
});
return defer.promise;
}
});
Dann kann ich myService überall injizieren und es werden die Felder alle aus der JSON-Datei haben.
Ich denke, alternativ könnten Sie einfach Ihre .json Dateien Js-Dateien machen, sie haben eine globale Variable aussetzen, und sie in Ihrer index.html Referenz
20 Konfigurationsdateien !? Das ist eine Menge Konfiguration! –
Ja. Naja, es sind hauptsächlich Labels und solche Sachen oder wie eine lange Liste von (festen) Wechselkursen. – user1241320