我不想基於codeigniter中的會話狀態動態顯示菜單項。讓我告訴你我的代碼,下面的解釋。使用Angular和Codeigniter更改基於會話值的菜單
這是我的index.html文件
<li><p ng-bind-html="link1" ></p></li>
<li><p ng-bind-html="link2" ></p></li>
到鏈路數據出來這個控制器
sessionFactory.isLoggedIn().then(function(data){
var loggedIn = data.logged_in;
if(loggedIn == true){
$scope.link1 = $sce.trustAsHtml('<a href="#/my_profile">My profile</a>');
$scope.link2 = $sce.trustAsHtml('<a ng-click="logOut()" style=\"cursor: pointer;" >Logout</a>');
}else{
$scope.link1 = $sce.trustAsHtml('<a href="#/login">Login</a>');
$scope.link2 = $sce.trustAsHtml('<a href="#/register" >Register</a>');
}
})
的這是我的會話工廠
//Factory for Session
app.factory('sessionFactory', ['$http', '$location', function($http, $location){
var factory = {};
factory.logOutUser = function(){
console.log("woot");
return $http({
method: 'POST',
url: $location.protocol() + '://' + $location.host() + '/server/api/users/logout'
}).then(function successCallback(response) {
console.log(response);
},function errorCallback(response) {
console.log('error logging out: ' + response);
});
}
factory.isLoggedIn = function(){
console.log("checking login");
return $http({
method: 'GET',
url: $location.protocol() + '://' + $location.host() + '/server/api/users/isLoggedIn'
}).then(function successCallback(response) {
console.log(response.data);
return response.data;
},function errorCallback(response) {
console.log('Checking login failed: ' + response);
});
}
/*
/server/api/users/logoutfactory.currentUserId = function(){
return $http.get($location.protocol() + '://' + $location.host() + '/server/api/users/userId');
}
*/
return factory;
}]);
阿比/server/api/users/isLoggedIn
回報
{"success":true,"logged_in":true}
或
{"success":true,"logged_in":false}
所以我要的是,當用戶登錄或註銷<li></li>
項目不改的問題。我必須按f5刷新網頁。
如果您需要任何其他信息,請讓我知道,我會提供。
預先感謝您。
,而不是插入HTML,爲什麼沒有出現所有的鏈接默認情況下,並設置一個布爾值與會話,並使用內置dirctives爲'angulars納克只顯示是否有真值。 –
你能提供jsfiddle/plunker嗎? – Nora
@JoeLloyd是的,我改變了它,我在想這可能是這個問題。 –