Прямой доступ к маршрутам angular2 из разрывов браузера

До angular2, если мы хотим получить маршрут в angularJS непосредственно из браузера, скажем, маршрут signup, мы используем подход hashbang (#/) следующим образом: www.example.com/#/signup

Но с angular2 это не работает. Я могу получить доступ только к маршруту регистрации, нажав кнопку регистрации на индексном маршруте - www.example.com/

Я уже добавил <base href="/">.

Пожалуйста, хотел бы знать, как я могу получить доступ к маршруту регистрации непосредственно из строки URL-адреса браузера. Спасибо.


person oreofeolurin    schedule 05.02.2016    source источник


Ответы (1)


Оно работает. Вы должны определить свою стратегию местоположения в приложении.

import {ROUTER_PROVIDERS, LocationStrategy, HashLocationStrategy } from "angular2/router";
bootstrap(AppComponent, [
 ROUTER_PROVIDERS,
 ...
 bind(LocationStrategy).toClass(HashLocationStrategy)
]);

Итак, если вы хотите использовать URL-адреса с #, ваша стратегия — HashLocationStrategy.

person Vlado Tesanovic    schedule 05.02.2016
comment
Хорошо спасибо. Но теперь я хочу получить свой торт и все же съесть его. Можно ли украсить URL-адрес, удалив хеш-мешок, и по-прежнему использовать маршрут, например www.example.com/signup вместо www.example.com/#/signup - person oreofeolurin; 05.02.2016
comment
Да, это PathLocationStrategy, об этом много написано на Overflow. - person Vlado Tesanovic; 05.02.2016