Я настроил мой RouteInitializer
следующим образом:Extra/при перенаправлении маршрут по умолчанию
class AppRouteInitializer implements RouteInitializer {
init(Router router, ViewFactory view) {
router.root
..addRoute(
name: 'root',
path: '/lounge_client_demo/web/lounge_client_demo.html',
mount: (Route route) => route
..addRoute(
name: 'lobby',
path: '#lobby',
enter: view('views/LobbyView.html'))
..addRoute(
name: 'chat',
path: '#chat',
enter: view('views/ChatView.html'))
..addRoute(
name: 'default',
defaultRoute: true,
enter: (_) => router.go('lobby', {'param': ':param'}, startingFrom: route, replace: false))
);
}
}
URL-адрес, чтобы лоббировать и общение:
http://127.0.0.1:3030/lounge_client_demo/web/lounge_client_demo.html#lobby
http://127.0.0.1:3030/lounge_client_demo/web/lounge_client_demo.html#chat
работают, как ожидалось. Но, когда я подам URL, как:
http://127.0.0.1:3030/lounge_client_demo/web/lounge_client_demo.html
или
http://127.0.0.1:3030/lounge_client_demo/web/lounge_client_demo.html#xxx
правило в defaultRoute
продюсирует следующий неправильный URL:
http://127.0.0.1:3030/lounge_client_demo/web/lounge_client_demo/.html#lobby
Am Я предполагаю, что здесь что-то не так, или это просто ошибка?
UPDATE: Ведение журнала показывает, что точка в URL-адресе экранирована и может быть неправильно преобразована в целевой URL.
2014-01-29 01:20:18.026: FINEST : route /lounge_client_demo/web/lounge_client_demo.html [Route: null]
2014-01-29 01:20:18.035: FINEST : _processNewRoute /lounge_client_demo/web/lounge_client_demo.html
2014-01-29 01:20:18.047: FINEST : route [Route: root]
2014-01-29 01:20:18.055: FINEST : _processNewRoute
2014-01-29 01:20:18.066: FINEST : go /lounge_client_demo/web/lounge_client_demo\.html#lobby
2014-01-29 01:20:18.075: FINEST : route #lobby [Route: root]
2014-01-29 01:20:18.087: FINEST : _processNewRoute #lobby
2014-01-29 01:20:18.099: FINEST : route [Route: default]
2014-01-29 01:20:18.108: FINEST : route [Route: lobby]
UPDATE: Я скопировал lounge_client_demo.html
в test.file.with.dots.html
и получить следующий URL переписывания:
http://127.0.0.1:3030/lounge_client_demo/web/test/.file/.with/.dots/.html#lobby
Каротаж показывает, что каждый период в настоящее время «убежали» с помощью обратной косой черты:
2014-01-30 01:16:28.246: FINEST : go /lounge_client_demo/web/test\.file\.with\.dots\.html#lobby
Возможно, blem с символом периода в маршрутной_иерархической упаковке ?!
К сожалению, это не помогло. Добавление * NgRoutingUsePushState (false) * не отображает вид, а defaultRoute не загружается.Удаление * # * просто удаляет # из результирующего URL-адреса. Я пробовал оба на Dart VM и V8. Я знаю, что вы больше всего знаете о пакете * route_hierarchical *, но я все еще очень подозрительно отношусь к записи журнала из метода go ;-) –
А, да. Вам также необходимо удалить корневой маршрут. Вам это не нужно. – pavelgj
Я имею в виду, вы можете либо выполнить согласование траектории, либо совместить фрагмент, но не оба. – pavelgj