I wish to load first service then controller in angular js. But when it first time load the variable of service is empty. Here is my Service code
app.service('Auth', function($http, $rootScope, $cookies, $sessionStorage, $location, dataFactory) {
var auth = {};
$sessionStorage.logincheck1 = 0;
auth.is_login_sim_v2 = function() {
if ($sessionStorage.logincheck1 == 0) {
var a = document.cookie.substr(10);
var a1 = a.split(";");
dataFactory.post_api('users/loginchecking', {
'session_id': a1[0]
}).then(function(resultChech) {
//console.log(resultChech);
$sessionStorage.logincheck1 = 1;
$sessionStorage.edgar_id = resultChech.checking_id;
$rootScope.$broadcast('Auth:isLoginSuccess');
//console.log($sessionStorage.edgar_id);
if ($sessionStorage.edgar_id === undefined) {
console.log('1');
return false;
} else if ($sessionStorage.edgar_id == 'undefined') {
console.log('2');
return false;
} else if ($sessionStorage.edgar_id == '') {
console.log('3');
return false;
} else {
console.log('4');
return $sessionStorage.edgar_id;
}
});
} else if ($sessionStorage.logincheck1 == 1) {
//console.log(document.cookie.substr(10));
if ($sessionStorage.edgar_id === undefined) {
return false;
} else if ($sessionStorage.edgar_id == '') {
return false;
} else {
return $sessionStorage.edgar_id;
}
}
}
})
And Here is my controller code:
$scope.$on('Auth:isLoginSuccess', function() {
// calculation based on service value
console.log(Auth.is_login_sim_v2());
console.log($sessionStorage.edgar_id);
if (Auth.is_login_sim_v2() == false) {
$scope.isLoggedIn=false;
} else if(Auth.is_login_sim_v2() === undefined){
$scope.isLoggedIn=false;
} else{
$scope.isLoggedIn=true;
}
})