2016-06-08 1 views
0

Я использую новый маршрутизатор (не устаревший маршрутизатор) в Angular2 RC1. Мне нужно загрузить файл конфигурации JSON до того, как приложение продолжит загрузку. Я использую класс Config для захвата конфигурации JSON, но проблема в том, что я не хочу, чтобы роутер-розетка загружалась, пока моя конфигурация не завершила загрузку.Angular2 RC1 - Загрузка маршрута (маршрутизатор-выход) после загрузки данных

я попытался обертывание <router-outlet> с *ngIf, только сталкивалась с этим вопросом: https://github.com/angular/angular/issues/8539

Я также попытался расширить <router-outlet>, в этом article, но не повезло (не работает с RC1)

Угловое устройство имеет способ «перезагрузить» маршрут, но это, похоже, не присутствует в NG2.

Как это сделать? Как загрузить файл конфигурации JSON после загрузки приложения и выполнить его после завершения настройки? Кто-нибудь еще успешно это сделал?

+0

Этот маршрутизатор будет заменен * снова * в ближайшее время. Я думаю, что лучший способ - просто отложить рендеринг вашего компонента, добавив '* ngIf =" data "' к самому внешнему элементу в представлении маршрутизируемого компонента. –

ответ

0

В новом маршрутизаторе (>= RC.3) https://angular.io/docs/ts/latest/api/router/index/Router-interface.html#!#resetConfig-anchorresetConfig можно использовать

router.resetConfig([ 
{ path: 'team/:id', component: TeamCmp, children: [ 
    { path: 'simple', component: SimpleCmp }, 
    { path: 'user/:name', component: UserCmp } 
] } 
]); 

В вашем случае я бы инициализировать маршрутизатор с некоторым фиктивным маршрутом и фиктивным компонентом, то после JSON доступна загрузка новые маршруты и перейти к новому маршруту по умолчанию.

https://github.com/angular/angular/issues/11437#issuecomment-245995186 обеспечивает rc.6 Plunker

-1

Как насчет учитывая страницу загрузки? Таким образом, если ваши данные еще не загружены полностью, на нем отображается страница загрузки вместо вашего маршрута.

См. this question за предложения о том, как реализовать экран загрузки в Angular2.

Update:

В другой стороны, я просто узнать, что мы можем предварительно загрузить данные с использованием маршрута распознаватель. Я все еще узнаю об этом, и this angular documentation может помочь.

Смежные вопросы