Sto costruendo un'app AngularJS che non si trova nella posizione root domain.tld/blog
. Ho installato il routing per tutto sulla base /blog
. Ho incluso il tag base nella testa della pagina <base href="/blog">
. html5Mode
è impostato su true
. All'interno dell'app funziona tutto come previsto. Tuttavia, quando faccio clic su un URL non angolare al di fuori della posizione di base, la pagina non viene caricata. Sembra che questa posizione e 'colto dalla funzione otherwise
nel router:AngularJS routing dirottamento URL non base quando è previsto il caricamento della pagina
ROUTER.otherwise({
redirectTo : '/blog'
});
Così, quando si fa clic su qualsiasi URL, cioè domain.tld/somewhere-else
si reindirizza a domain.tld/blog. Ovviamente questo è quello che ti aspetteresti: per ogni URL che non si trova nel router, reindirizza la pagina alla "homepage". Nella mia app questo non è il comportamento desiderato. Tutti gli URL che non si trovano nel router devono essere trattati come un normale URL e generare una pagina di ricarica in tale URL.
Quindi quello che serve è qualcosa di simile:
ROUTER.otherwise(
window.location = theRequestedUrl;
);
questo non funziona, ovviamente. Ma in qualche modo ho bisogno di entrare nella parte altrimenti del router e dirgli di reindirizzare alla pagina con una pagina di ricarica.
la seguente domanda è legata: angular routing something weird happening
Il seguente jsFiddle illustrato il problema http://fiddle.jshell.net/43tub/6/show/light/ (@rdjs grazie!). Clicca sul link /outside
dovrebbe fare un aggiornamento completo pagina ...
quale versione di AngularJS stai usando? – rdjs
@rdjs 1.1.5, ma il comportamento è lo stesso in 1.0.7 – DivZero
Ciò dimostra esattamente il problema? http://jsfiddle.net/43tub/6/ – rdjs