Странное поведение синхронизации браузера при использовании дочерних маршрутизаторов в aurelia с активированным pushstate

Я включил pushState на своих маршрутизаторах aurelia и установил root.

config.options.pushState = true;
config.options.root = '/vNext';

Я установил базовый href в своей голове:

<head>
    <base href="/vNext/" />

На моей странице я вставляю дочерний маршрутизатор, который содержит редирект с "" на список

app.ts:

config.map([
  { route: '', redirect: 'child-router-1' }, ...

дочерний маршрутизатор-1.ts:

 config.map([
      { route: '', redirect: 'list' }, ...

Что работает

  • Перезагрузка работает, при изменении файла все окна браузера корректно перезагружаются с изменением.
  • Синхронизация с браузером: синхронизация кликов по элементам, не связанным со ссылками (например, сворачивающееся меню), работает, я могу щелкнуть в одном окне, и это повлияет на все окна, синхронизированные с браузером.

Что не работает

  • Синхронизация браузера: синхронизация навигации после нажатия ссылки (эта проблема возникает у всех маршрутов верхнего или дочернего уровня). Здесь только щелкнутое окно переходит к ссылке. Но все другие окна, подключенные к браузеру, либо остаются на текущей странице, либо ошибочно переходят к URL-адресу дочернего маршрутизатора вместо связанного маршрута.

например в списке /vNext/child-router1/ нажатие ссылки на /vNext/child-router1/5000/detail не будет иметь никакого эффекта в подключенных браузерах, даже если Фрагменты socket.io показывают щелчок.


person Michiel Cornille    schedule 18.07.2017    source источник


Ответы (1)


взгляните на этот объединенный запрос на вытягивание, который улучшает поддержку pushstate для синхронизации браузера.

https://github.com/aurelia/cli/pull/204/files

person Alexander Taran    schedule 12.03.2018
comment
Глядя на дату из этого PR, я ожидаю, что она уже была там, когда я делал этот пост stackoverflow. Я буду следить за этим и обновлять, если это необходимо. - person Michiel Cornille; 12.03.2018
comment
Где-то я видел рекомендацию просто изменить задачу самостоятельно. Вы можете проверить их в папке aurelia_project/tasks - person Alexander Taran; 12.03.2018