2016-04-13 4 views
0

С этим @RouteConfig -> Можно ли оставить адресную строку браузера «http://foo.com/» где «/» оставаться в качестве «/» и никогда не добавлять «/ Home» в адресную строку браузера? Угловой проход вокруг URL-адреса внутри на той же веб-странице, поэтому почему адресная строка браузера не изменяется?Использование @RouteConfig, возможно ли запретить изменение адресной строки браузера?

Мы не хотим, чтобы клиент продолжал использовать кнопку возврата веб-браузера и испортил данные веб-страницы.

@RouteConfig([ 
    { 
     path: '/', 
     name: 'SignIn', 
     component: SignInComponent, 
     useAsDefault: true 
    }, 
    { 
     path: '/', //Home', 
     name: 'Home', 
     component: MemberHomeComponent 
    } 
]) 
+2

Я считаю, что основной точку маршрутизации является изменением URL, истории браузера и способности идти к конкретному URL и имею определенный компонент загружен. Наверное, лучше использовать другую технику? – MSwehli

+1

Маршрутизатор работает исключительно на основе URL-адреса браузера, я думаю, что то, чего вы ожидаете, невозможно достичь с помощью маршрутизатора с угловым2. – sreeramu

+1

Маршрутизация должна работать с URL-адресами. [** DynamicComponentLoader **] (https://angular.io/docs/ts/latest/api/core/DynamicComponentLoader-class.html) может быть тем, что вы ищете, тем самым вы меняете компоненты внутри без маршрутизации в любом месте. –

ответ

0

Вы можете создать свою собственную реализацию PlatformLocation, которая не использует pushState() но вместо этого сохраняет историю в массиве.

Вы можете использовать BrowserPlatformLocation

Вы можете ANGULAR использовать ваши реализации по

bootstrap(AppComponent, [ 
    ROUTER_PROVIDERS, 
    MyNoUrlBrowserPlatformLocation, 
    provide(PlatformLocation, {useExisting: MyNoUrlBrowserPlatformLocation}) 
]); 
+0

Есть ли лучший пример об использовании 'MyNoUrlBrowserPlatformLocation'? Я все еще изучаю использование «PlatformLocation» и «BrowserPlatformLocation», но он выглядит довольно новым и мало кто знает, как его использовать. – fletchsod

+1

'BrowserPlatformLocation' будет примером для пользовательской' PlatformLocation'. В противном случае я не знаю. Это просто подход, который я попробую. –

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