我想確定,如果我的應用程序仍然通過身份驗證,我的應用程序將檢查某些路徑。要做到這一點,我添加到我的路線:以承諾角度進行會話檢查
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/profile',{
templateUrl: 'templates/user/profile.html',
controller: 'ProfileCtrl',
resolve: [ 'SessionCheck' ]
}).
.......
我有一個工廠,處理[ 'SessionCheck']
AppFactories.factory("SessionCheck", ['$http','$q','FlashService',
function($http,$q,FlashService) {
var def = $q.defer();
var SessionStatus = $http.get('/sessioncheck', {cache: false});
if(SessionStatus.success){
def.resolve();
}else{
FlashService.show(SessionStatus.data.flash);
def.reject;
}
return def.promise;
}]);
我可以看到鏈接被調用,但只有一次。每次我點擊具有resolve屬性的路由時,sessioncheck都不會發送到服務器....我已經嘗試將緩存置於false,但仍然存在。我究竟做錯了什麼?
放入運行塊服務http://docs.angularjs.org/guide/module $ rootScope。$ on('$ routeChangeSuccess',function(){})只是爲了給你一個提示 – Whisher