I'm learning angular, and I'm trying to use a service to store data from an HTTP request, and be able to access it later.
Problem:
Data object is empty every time I try to retrieve it, which causes it to make a new call. I'm using this in the context of a ui-router resolve(does this cause the service to re-instantiate and lose the data)?
Service:
evaApp.factory('userService', ['$http', '$q', function ($http, $q) {
  var user = {};
  return {
    makeRequest   : function(url, uid) {
      var deferred = $q.defer();
      if (!uid) { uid = ''; };
      $http.get(url, { params : { userId : uid } }).then(function (res) {
        deferred.resolve(res.data);
      });
      return deferred.promise;
    },
    getUser       : function(userId) {
      console.log(user); // user is always empty
      if(!user || !user._id) { 
        user = this.makeRequest('/api/user/get', userId);
      };
      return user;
    }
  }
}]);
Addition:
Data storage is working using PSL's solution. Data retrieval is not: Link to question.
 
     
     
    