angularjs - реализовать функцию разрешения маршрута без маршрутизации / ng-view - PullRequest
0 голосов
/ 17 мая 2018

В большом приложении мне теперь нужно получить доступ к некоторым данным (вызов 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();
                }
            } 
        });

Надеюсь, это поможет:)

...