2013-08-20 11 views
5

Więc w tej chwili skonfigurowałem html5mode.Wylogowany adres URL w html5mode angularjs?

$locationProvider.html5Mode(true); 
    $locationProvider.hashPrefix('!'); 

To koniec mojej middelware ekspresem do wspierania html5mode

app.use(function (req, res) { 
    if (!req.path.match('/calendar|/user|/create|/profile')) { 
     return res.send(404); 
    } 
    res.render('home/index', { 
     currentUser: req.user 
    }); 
}); 

I wszystkie moje adresy działają dobrze w Chrome i Firefox 3.6 (którego używam do testowania hashbang zastępczą).

Mój jedyny problem dotyczy trasy wylogowania. Moje wylogowanie to interakcja z serwerem. Więc zrobiłem to.

$rootScope.logout = function() { 
     window.location = '/logout'; 
    }; 

Po kliknięciu tej funkcji działało do wylogowania w Chrome. Jak mam to zrobić w trybie awaryjnym hashbang? To nie działa w Firefoksie 3.6. Dzięki!

+0

Możesz spróbować '$ location.url ('/ logout')' – zsong

+0

To pierwsza rzecz, którą próbowałem. Nie działa lub nie działa w html5mode –

+0

Cóż, myślę, że możesz wykryć przeglądarkę, aby sprawdzić, czy obsługuje on parametr pushState, czy nie. Jeśli nie, dodaj ręcznie '#! '. :) – zsong

Odpowiedz

11

Dodaj target = "_ self" do łącza tak:

<a href="/logout" target="_self">Logout</a> 

angularjs ignorować linki z atrybutem docelowej. Jest to udokumentowane tutaj: HTML link rewriting (szukaj _self).