Мы готовимся к обновлению нашего приложения AngularJS и рефакторингу для этого. В настоящее время мы столкнулись с архитектурной проблемой:
В настоящее время наше приложение загружает JSON через вызов jQuery AJAX, он устанавливает все данные, а затем загружает приложение.
Однако нам нужно переместить вызов AJAX в Angular, чтобы мы могли загружать приложение, не дожидаясь возврата AJAX (что необходимо для обновления).
$.get('/ajax/init').done(function (initData) {
walletApp.run([
'SomeService', function (someService) {
// ...
},
]);
walletApp.config([
'SomeProvider', function (someProvider) {
// ...
},
]);
walletApp
.factory('navInfo', function () {
return initData.navInfo;
})
.factory('userInfo', function () {
return initData.userInfo;
});
// ETC
// Below is the important line
angular.bootstrap(document, ['walletApp']);
});
Я пробовал что-то вроде приведенного ниже, где initService
получает фид JSON, а затем назначает все данные
angular.module('walletApp')
.run([
'InitService', function (initService) {
initService.get();
},
]);
angular.bootstrap(document, ['walletApp']);
Но это приводит к множеству проблем.
Как правильно загрузить приложение AngularJS, которому для работы требуются данные от AJAX?
$http
и делаете запрос? Если я правильно понимаю, вы хотите загрузитьJSON
данные перед загрузкой сайта. Пожалуйста подтвердите - person Shashank Vivek   schedule 22.02.2019this.$http.get<any>(url, {params: params})
. Да, данные AJAX необходимы для настройки фабрик и других данных. - person Richard   schedule 22.02.2019angular.bootstrap
, не зависящий от завершения вызова AJAX. - person Richard   schedule 22.02.2019