AngularJs: ¿Cómo acceder a variables globales fuera del controlador? [duplicar]
Esta pregunta ya tiene una respuesta aquí:
Variables globales en AngularJS 12 respuestasEstoy tratando de acceder a una variable global a través de una función normal, ¿es posible?
He configurado algunas variables usando $ rootScope y estoy intentando acceder a esto a través de una función de devolución de llamada. Esta devolución de llamada se llama desde el controlador. No quiero pasar$rootScope
en esa devolución de llamada.
¿Hay alguna manera de acceder a ese$rootScope.var
?
Estoy abierto a usar el servicio si es posible.
Por favor recomiende.
Gracias
Estoy tratando de acceder a rootScope de la siguiente manera:
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);
}
}
y mi servicio es 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;
}
};
}]);
muestra isFBLoggedin como verdadero en updateStatus fn pero no se refleja en la vista
Estoy imprimiendo{{isFBLoggedin}}
pero está mostrando su falso
Finalmente está funcionando.
Seguí la solución de @dluz.
Tambien utilicé$rootScope.$apply(function() {}})
para renderizar vistas