1
我正在使用Satellizer進行身份驗證,登錄後,登錄/註冊按鈕在標題中應該更改爲註銷,但他們不。
這裏是我的頭指令:
angular.module('pages.components.navHeader', [
'common.services.authenticationService'
])
.directive('navHeader', function() {
var directive = {};
directive.restrict = "E";
directive.templateUrl = "navHeader.tpl.html";
directive.controller = ['$scope','$location', 'CONFIG', 'authenticationService', function navHeaderCtrl($scope, $location, CONFIG, authenticationService) {
$scope.isAuthenticated = authenticationService.isAuthenticated();
$scope.logout = function(){
authenticationService.logout();
};
}];
return directive;
});
這裏是我的頭模板的有趣的部分:
<li ng-show="!isAuthenticated"><a ng-href="#">Login</a></li>
<li ng-show="!isAuthenticated"><a ng-href="#">Register</a></li>
<li ng-show="isAuthenticated"><a ng-click="logout()" href="#">Logout</a></li>
我有一個工廠在情況satellizer額外的一層爲不工作我,這只是一個指令,這樣做:
.factory ('authenticationService', ['CONFIG', '$auth', function authenticationService (CONFIG, $auth) {
var authentication = {};
authentication.isAuthenticated = function(){
return $auth.isAuthenticated();
};
return authentication;
}])
所以,即使當我點擊註銷,噸他的頭不更新。我是否在我的頭文件中設置isAuthenticated時出錯?
嘗試增加'$範圍$適用();'了'authenticationService.logout後() '方法 –
在你的註銷函數中添加'$ scope.isAuthenticated = authenticationService.isAuthenticated();' –