AngularJs: Wie greife ich auf globale Variablen außerhalb des Controllers zu? [Duplikat]
Diese Frage hat hier bereits eine Antwort:
Globale Variablen in AngularJS 12 AntwortenIch versuche über eine normale Funktion auf eine globale Variable zuzugreifen. Ist das möglich?
Ich habe mit $ rootScope eine Variable gesetzt und versuche, über eine Rückruffunktion darauf zuzugreifen. Dieser Rückruf wird vom Controller aufgerufen. Ich will nicht weitergeben$rootScope
in diesem Rückruf.
Gibt es eine Möglichkeit, darauf zuzugreifen?$rootScope.var
?
Ich bin offen für den Service, wenn es möglich ist.
Bitte vorschlagen.
Vielen Dank
Ich versuche wie folgt auf rootScope zuzugreifen:
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);
}
}
und mein service ist als:
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;
}
};
}]);
es zeigt isFBLoggedin unter updateStatus fn als true an, spiegelt aber die Ansicht nicht wider
Ich drucke{{isFBLoggedin}}
aber es zeigt falsch
Endlich ist es soweit.
Ich bin @ dluz's Lösung gefolgt.
Ich habe auch verwendet$rootScope.$apply(function() {}})
Ansichten zu rendern