Какой лучший способ сохранить несколько внешних файлов JSON в $rootScope в Angular 1.5?

У меня есть 3 json-файла для создания внешнего интерфейса моего веб-приложения:

  1. config.json, чтобы получить все параметры, основанные на правах пользователя
  2. Предпочтения.json, который является предпочтениями пользователя
  3. 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"])
Другие вопросы по тегам