В большом приложении мне теперь нужно получить доступ к некоторым данным (вызов json api) асинхронно (до этого синхронный доступ к этим данным).
Я не хотел бы менять реализацию компонентов, чтобы теперь обрабатывать это асинхронное поведение (слишком рискованно).
Я подумал о функции «разрешения» $ routeProvider (с обещаниями), которая помогает абстрагировать это асинхронное поведение от компонентов / контроллеров.
К сожалению, я абсолютно не использую маршрутизацию.
Есть ли реализация для этого? Если нет, то с чего мне начать?
EDIT:
как я был раньше (jsonData не загружались синхронно, но он был прозрачен благодаря функциям systemJS, SystemJS, которые мы теперь выбрасываем в мусор, отсюда и вопрос):
https://plnkr.co/edit/BSreVYNAr7sijYwEpb5G?p=preview
Как я сейчас:
https://plnkr.co/edit/WnX0ynOqkZsmEzIxl1SI?p=preview
Посмотрите консоль, чтобы увидеть пример проблем, которые могут возникнуть сейчас.
Я вроде как сделал так, но я не совсем доволен (посмотрите блок конфигурации):
https://plnkr.co/edit/P9Rv6rnboFlaFZ0OARNG?p=preview
$provide.value('$provide', $provide);
$routeProvider.otherwise({
template: '<test></test>',
controller: function ($provide, myJsonData1) {
$provide.value('myJsonData', myJsonData1);
},
resolve: {
myJsonData1: function(){
return getMyJsonData();
}
}
});
Надеюсь, это поможет:)