AngularJs: Jak uzyskać dostęp do zmiennych globalnych poza kontrolerem? [duplikować]

To pytanie ma już tutaj odpowiedź:

Zmienne globalne w AngularJS 12 odpowiedzi

Próbuję uzyskać dostęp do zmiennej globalnej za pomocą normalnej funkcji, czy to możliwe?

Ustawiłem var za pomocą $ rootScope i próbuję uzyskać do niego dostęp za pośrednictwem funkcji zwrotnej. To wywołanie zwrotne jest wywoływane z kontrolera. Nie chcę przejść$rootScope w tym wywołaniu zwrotnym.

Czy jest jakiś sposób na uzyskanie dostępu do tego$rootScope.var ?

Jestem otwarty na korzystanie z usługi, jeśli jest to możliwe.

Proszę zasugeruj.

Dzięki

Próbuję uzyskać dostęp do rootScope w następujący sposób:

    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);
      }
  }

a moja usługa jest następująca:

    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;
        }
       };
}]);

to pokazuje, że BLOGoggedin jest prawdziwe w updateStatus fn, ale nie jest widoczne w widoku

Drukuję{{isFBLoggedin}} ale ts pokazuje fałszywe

Wreszcie działa.

Śledziłem rozwiązanie @ dluz.

Ja też użyłem$rootScope.$apply(function() {}}) do renderowania widoków

questionAnswers(2)

yourAnswerToTheQuestion