Ok I am beating my head into the wall trying to figure out why my service 
is returning a undefined value on page load.  Below is my service and the 
run function I have.  I can see from my console log that I am getting the 
correct value.  But when I log ($rootScope.user) from my app controller I 
get undefined.  I can see in the Angular inspector that the data I am 
trying to get in the controller is in the rootScope but for some reason its 
loading undefined before it has a chance to fetch the data.  I have played 
around for hours with the promise function and can't seem to get it to 
work.  Any help will be appreciated. 

.service('CurrentUser', function($http, $q) {
  this.get = function() {
    var deferred = $q.defer();
    var url = '/api/current-user?format=json';
    $http.get(url).success(function(data, status) {
      deferred.resolve(data);
    }).error(function(data, status) {
      deferred.reject(data);
    });
    return deferred.promise;
  }
})
.run(function (CurrentUser, $rootScope){
  var promise = CurrentUser.get();
  promise.then(function(data) {
    if (data.is_active == false) {
      $rootScope.authenticated = false
      $rootScope.user = null
      console.log($rootScope.authenticated)
    } else {
      $rootScope.authenticated = true
      $rootScope.user = data;
      console.log($rootScope.authenticated)
    }
  });
})

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to angular+unsubscr...@googlegroups.com.
To post to this group, send email to angular@googlegroups.com.
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to