2013-08-20 4 views
5

Also jetzt habe ich html5mode konfiguriert.Logout URL in html5mode angularjs?

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

Dies ist Ende meiner Middel für Express 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 
    }); 
}); 

Und alle meine Urls arbeiten gut in Chrome und Firefox 3.6 (was ich bin mit testen Hash-Bang Rückfall) zu unterstützen.

Mein einziges Problem ist mit der Logout-Route. Meine Abmeldung ist eine Serverinteraktion. Also habe ich das getan.

Und machte einen ng-Klick zu dieser Funktion und das funktionierte für die Abmeldung in Chrome. Wie würde ich das im Hashbang-Fallback-Modus machen? Es funktioniert nicht in Firefox 3.6. Vielen Dank!

+0

Sie können versuchen, '$ location.url ('/ logout')' – zsong

+0

Das ist das erste, was ich ausprobiert habe. Funktioniert nicht in oder aus html5mode –

+0

Nun, ich denke, Sie können den Browser erkennen, ob es den PushState unterstützt oder nicht. Wenn nicht, dann fügen Sie die '#!' Manuell hinzu. :) – zsong

Antwort

11

a target = "_ self" auf den Link wie folgt hinzufügen:

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

AngularJS ignorieren Links mit einem Zielattribut. Dies ist hier dokumentiert: HTML link rewriting (Suche nach _self).