AngularJs: Como acessar variáveis globais fora do controlador? [duplicado]
Esta questão já tem uma resposta aqui:
Variáveis globais em AngularJS 12 respostasEu estou tentando acessar uma variável global através de uma função normal, é possível?
Eu configurei alguns var usando $ rootScope e estou tentando acessar isso através de uma função de retorno de chamada. Este retorno de chamada é chamado pelo controlador. Eu não quero passar$rootScope
nesse retorno de chamada.
Existe alguma maneira de acessar esse$rootScope.var
?
Estou aberto para usar o serviço, se for possível.
Por favor sugira.
obrigado
Eu estou tentando acessar o rootScope da seguinte forma:
function fbLandingCtrl($scope, $rootScope) {
$rootScope.isFBLoggedin = false;
$scope.login = function() {
console.log( $rootScope.isFBLoggedin);
fbHelper.login(getUserInfo);
};
function getUserInfo(){
fbHelper.getUserInfo(updateStatus);
}
function updateStatus(userInfo){
$rootScope.isFBLoggedin = true;
console.log( $rootScope.isFBLoggedin);
}
}
e meu serviço é como:
myapp.factory('FBService', [ '$rootScope', function ($rootScope) {
$rootScope.isFBLoggedin = false; // global variable
$rootScope.userName = null;
$rootScope.userEmail = null;
return {
getStatus: function() {
return $rootScope.isFBLoggedin;
},
setStatus: function(status) {
console.log("Status:"+status);
return $rootScope.isFBLoggedin = status;
}
};
}]);
está mostrando isFBLoggedin como true em updateStatus fn mas não está refletindo na visualização
Eu estou imprimindo{{isFBLoggedin}}
mas é ts mostrando falso
Finalmente está funcionando.
Eu segui a solução do @ dluz.
Eu também usei$rootScope.$apply(function() {}})
para renderizar visualizações