2013-08-20 16 views
5

Quindi ora ho configurato html5mode.URL di logout in html5mode angularjs?

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

Questa è la fine della mia middelware per espresso per sostenere 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 
    }); 
}); 

E tutti i miei URL stanno lavorando bene in Chrome e Firefox 3.6 (che sto usando per testare fallback hashbang).

Il mio unico problema è con il percorso di logout. Il mio logout è un'interazione con il server. Quindi l'ho fatto.

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

E fatto un ng-clic per questa funzione e che ha funzionato per la disconnessione in Chrome. Come faccio a fare questo nella modalità di fallback hashbang? Non funziona in Firefox 3.6. Grazie!

+0

Si può provare '$ location.url ('/ logout')' – zsong

+0

Questa è la prima cosa che ho provato. Non funziona dentro o fuori da html5mode –

+0

Bene, penso che potresti rilevare il browser per vedere se supporta o meno pushState. In caso contrario, aggiungere "#!" Manualmente. :) – zsong

risposta

11

Aggiungi un target = "_ self" al link come questo:

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

AngularJS ignorare i legami con un attributo target. Questo è documentato qui: HTML link rewriting (cerca _self).

Problemi correlati