Какой лучший способ сохранить несколько внешних файлов JSON в $rootScope в Angular 1.5?
У меня есть 3 json-файла для создания внешнего интерфейса моего веб-приложения:
- config.json, чтобы получить все параметры, основанные на правах пользователя
- Предпочтения.json, который является предпочтениями пользователя
- foo.json - объект, который пользователь будет изменять благодаря веб-приложению.
В моем главном контроллере, config или Run (я не знаю, как лучше), я хотел бы загрузить все эти файлы json и сохранить их в $rootScope для построения всех экземпляров моих компонентов на HTML-странице.
Я уже пытался сделать это...
$http.get('config/config.json').success(function(configResponse) {
$rootScope.config = configResponse;
});
$http.get('preferences/preferences.json').success(function(prefResponse) {
$rootScope.preferences = configResponse;
});
$http.get('foo/foo.json').success(function(fooResponse) {
$rootScope.foo = fooResponse;
});
console.dir($rootScope);
К сожалению, это не работает. У кого-то есть идея и лучший способ сделать это в Angular 1.5, который облегчит переход в Angular 2.0?
1 ответ
Не используйте $rootScope, для конфигурации приложения рекомендуется использовать определенный модуль с информацией о конфигурации и зарегистрировать каждый блок конфигурации как "постоянный".
В вашем случае конфигурация на стороне сервера стала немного более сложной. См. Асинхронная загрузка приложений AngularJS с данными на стороне сервера
(function() {
var appConfig=angular.module("app.config");
var initInjector = angular.injector(["ng"]);
var $http = initInjector.get("$http");
$http.get('config/config.json').success(function(configResponse) {
appConfig.constant("config", configResponse);
});
$http.get('preferences/preferences.json').success(function(prefsResponse {
appConfig.constant("preferences", preferencesResponse);
});
})());
В вашем модуле приложения включите app.config
и тогда вы можете ввести config,preferences or foo
на ваши угловые контроллеры, сервисы,...
angular.module("app",["app.config"])