2013-08-20 51 views
5

所以現在我已經配置了html5mode。html5mode angularjs註銷url?

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

這是我middelware快遞的結束,支持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 
    }); 
}); 

而且我所有的網址爲工作在Chrome和火狐3.6(我使用的測試hashbang後備其中)好。

我唯一的問題是與註銷路線。我的註銷是服務器交互。所以我做到了。

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

並對此功能進行了一次ng鍵點擊,並在Chrome中註銷。我將如何在hashbang後備模式中做這件事?它不適用於Firefox 3.6。謝謝!

+0

您可以嘗試'$ location.url('/ logout')' – zsong

+0

這是我第一次嘗試。不工作在或不在html5mode –

+0

那麼,我想你可能會檢測瀏覽器,看看它是否支持pushState。如果不是,則手動添加'#!'。 :) – zsong

回答

11

添加目標= 「_自我」 像這樣的鏈接:

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

AngularJS忽略與目標屬性的鏈接。這裏記錄:HTML link rewriting(搜索_self)。