Угловая маршрутизация приложения во время начальной загрузки в iframe - PullRequest
0 голосов
/ 28 июня 2018

У меня есть угловое приложение, работающее в iframe. HTML выглядит так.

<html>
  <body>
    <iframe src="http://localhost:9999?screen=two"></iframe>
  </body>
</html>

В указанном пути я добавил параметр запроса 'screen'. Доступны три вида, маршрутизация показана ниже.

const routes: Routes = [
  { path: 'one', component: OneComponent },
  { path: 'two', component: TwoComponent },
  { path: '', component: AppComponent }
];

В угловом приложении я разрешил компонент, который будет показан в ngOnInit() из app.component.ts

ngOnInit(): void {
    const screen = this.activatedRoute.snapshot.queryParams['screen'];
    console.log('main component loaded.');
    console.log(screen);
    this.router.navigate([screen]);
}

Проблема в том, что iframe всегда показывает OneComponent до тех пор, пока я снова не открою вкладку после изменения параметра запроса. Мои вопросы:

  1. Почему это происходит?
  2. Есть ли способ изменить экран? после изменения только параметра запроса и перезагрузки, вместо открыть вкладку?

1 Ответ

0 голосов
/ 03 июля 2018

Я не уверен насчет причины, но есть исправление для автоматического обновления iframe каждый раз, когда изменяется параметр запроса.

<script>
    var _theframe = document.getElementById("theframe");
    theframe.contentWindow.location.href = theframe.src;
</script>
...