我試圖用角度和休息api構建簡單的登錄,我檢查用戶是否登錄登錄表單控制器有奇怪的問題。當直接從控制器訪問時,工廠屬性爲空角度
這裏是我的代碼:
每次我刷新我的應用程序加載當前登錄的用戶
angular.module('myApp').run(['security', function(security) {
security.requestCurrentUser();
}]);
安全模塊是這樣的(simplefied,由角應用的啓發)
angular.module('security').factory('security', ['SERVER_CONFIG', '$http', '$q', '$location', 'securityRetryQueue',
function (SERVER_CONFIG, $http, $q, $location, queue) {
var service = {
currentUser : null,
isAuthenticated : function() {
return !!service.currentUser;
},
login :
....
},
logout :
....
},
requestCurrentUser :
...
}
};
return service;
}]);
因此它保存有關當前用戶的數據並使用isAuthenticated可以發現用戶是否已登錄
angular.module('security.login').controller('LoginFormCtrl', ['$scope', 'security', function ($scope, security) {
console.log(security)
console.log(security.currentUser)
console.log(security.isAuthenticated())
}]);
的console.log(安全)返回對象,其中財產用戶充滿了用戶的數據,以便方法isAuthenticated返回true
但這裏來的奇怪的事情:
security.user返回null和security.isAuthenticated()返回false,我不明白爲什麼用戶空... 我需要它重定向從登錄頁面時訪問和用戶已登錄。我知道角應用程序使用模式爲此,所以它可以解決我的問題,但我不想使用模態...
如果任何人都可以解釋我「M做錯了我會很高興...
非常感謝Blažek
Security.user與security.currentUser相同,還是代碼中未顯示的另一個屬性? – tasseKATT
對不起有一個錯誤,我寫入到stackoverflow時應該有currentUser而不是用戶...編輯... – blazek