Question

i am working with angular and Parse.com and I have a problem:

I have a "mainController" that its in all the html document and a routeProvider with some pages and controllers.

   function mainController($scope) 
       {

            $scope.logeado = (Parse.User.current()!=null)

              if (Parse.User.current()==null)
                {
                     $scope.showuser=""
                }
              else
                {
                    $scope.showuser=Parse.User.current().get('username')
                }

              $scope.logout = function()
                {
                     Parse.User.logOut();
                     $scope.logeado = (Parse.User.current()!=null);
                     $scope.$apply();
                 }

      };

One of this controller is "loginController". In this controller make the login, but my problem is: If i logout, the function is in the maincontroller and this ng-show="logeado" change because the variable is inside, but if i login since logincontroller, i can change "Parse.User.current()" but $scope.logeado isn't update, and i need update all the page to see the changes.

How can i do to update de variable?

Was it helpful?

Solution 2

Finally, I have make a function in mainController($scope):

     $scope.login2= function(){

         $scope.logeado = (Parse.User.current()!=null);


         if (Parse.User.current() == null)      
            {
                 $scope.showuser=""
            } 
         else  
            {
                 $scope.showuser=Parse.User.current().get('username')
            }
     };

and call it since loginController($scope) because $scope.login2 is inherited in this.

OTHER TIPS

One of the way to solve problem is to implement pattern observer. Let Parse.User.current notify about his state.

function mainController($scope){  

  Parse.User.current.onChange(function () {
    $scope.logeado = (Parse.User.current()!=null);

    if (Parse.User.current() == null)      {
      $scope.showuser=""
    } else  {
      $scope.showuser=Parse.User.current().get('username')
    }
  });

  $scope.logout = function() {
    Parse.User.logOut();
  };
};
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top