2016-09-20 2 views
1

Я создаю testportal, где студенты могут дать тест, поэтому на OnInit из TestComponent. Я получаю полный тест от службы, а затем направляюсь к вопросам или компоненту инструкции в зависимости от состояния теста (впервые приостановлено или началось).Угловой 2 маршрутизатор не может перемещаться при вызове из OnInit компонента

Это не работает, хотя обещание, возвращенное this.router.navigate, разрешает, если я поставлю свой код this.router.navigate в settimeout, даже с таймаутом 0 он работает и правильно перемещается.

Любая помощь в том, как обращаться с этим делом и сведения о том, почему он не правильно перемещается, я посмотрел на код маршрутизатора, но не мог найти ничего там. Это от окончательной версии углового2.

TL; DR this.route .navigate не работает над компонентом OnInit.

@ угловой/маршрутизатор: 3.0.0

@ угловая/общая: 2.0.0

+1

Почему вы хотите использовать маршрутизатор, а не компонент вопроса нагружает вопрос или компонент инструкции нагружать команду, основанный на ngSwitch? – Supamiu

+0

Ну, есть несколько разделов и вопросов. А также список вопросов, на которые нажимается элемент выбранного вопроса в розетку маршрутизатора. Поэтому я задаю вопрос, который нужно инициализировать на основе маршрута. Надеюсь, это несколько ответит на ваш вопрос. – abstract

ответ

1
RouterModule.forRoot(appRoutes, { initialNavigation: false }); 

Мой вопрос был потому, что я пытался перейти на другой URL, до того, как начальная навигация закончилась. Завершение этой строки в app.routing.ts решило проблему.

https://github.com/angular/angular/issues/11748

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