2014-09-05 56 views
0

我正在開發一個angularjs應用程序,該應用程序允許用戶登錄和編寫故事。登錄和寫有獨立的網址,即如何在angularjs中驗證身份之前停止呈現任何html

app/login 
app/write 
每次用戶粘貼在任何瀏覽器這些URL的

,它會被重定向到寫或登錄頁面相應。我的問題是,當某人在瀏覽器中首先粘貼應用/登錄時,會呈現write.html,然後向後端發送狀態請求以檢查用戶是否已登錄。我希望發生這種情況,使得沒有html直到確認用戶已登錄,並且如果用戶沒有被重定向到登錄頁面。 關於我如何實現這一點的任何想法?我app.js文件

部分看起來像這樣

$routeProvider.when('/login', {templateUrl: 'partials/index/login-form.html', controller: 'LoginCtrl'}); 
$routeProvider.when('/write', {templateUrl: 'partials/home/write.html'}); 

回答

3

首先創建一個可確定,例如每條路線的訪問級別恆定

angular.module("App") 
.constant('USER_ROLES', { 
    logedIn : 'true' 
}); 

然後將它們添加到的定義路線爲

.when('/write',{ 
    templateUrl:'templates/write.html', 
    access_level:USER_ROLES.logedIn 
}) 

之後在運行功能檢查$rootScope.$on('$locationChangeStart'事件,在它內部,您可以通過var location = $location.path(); var route = $route.routes[location];訪問路由,然後通過route.access_level;訪問用戶角色

+0

鑑於這種就是這樣一個典型的使用情況下,它很奇怪,有沒有解決這個問題更直接的方式。 – andyczerwonka 2015-10-19 21:22:40

相關問題