title: AngularJS : Access stored data in a factory after a $http call
body: <p>I am trying to build a factory to act as a staging area for my database models, as well as an api to perform basic CRUD calls. I want to be able to access data by storing it in a service or a factory, and keep api methods along with it so I can perform actions like these in the controller.</p>
  
  <pre><code>$scope.folders =  Folders.data(); // for a factory
  $scope.folders = Folders.data; // for a Service
  
  Folders.create({name: "My Stuff, $oid: { 5fwewe033333 }, user_id: CurrentUser.id"});
  </code></pre>
  
  <p>Currently I am using the Folder factory like this in the controller.</p>
  
  <pre><code>Folders.foldersData().success( function(data, status) {
     $scope.folder = data;
  })
  .error( function(data,status) {
     Flash.warning("There was a problem fetching your data");
  });
  </code></pre>
  
  <p>I know I can just have a promise resolved in the controller, but with the size of the project I'm working on, I like the idea of accessing the Folders model in a service, with out having to make a server call to sync the data every time I make a change. </p>
  
  <pre><code>angular.module('cmsApp')
    .factory('Folders', function($http, $q){
  
      var folders = {};
      var messageWarn = "Upload Retrival Failed.";
  
  
      return {
        get: function(){
          var defered = $q.defer();
  
          $http.get('/folders').success( function ( data, status ) {
            defered.resolve(data);
          })
          .error( function ( data, status ) {
            defered.reject();
            Flash.warning(message_warn);
          });
          defered.promise.then( function (promise)
            folders = promise;
          });
        }, 
        data: function (){
        return folders;
      },
    }               
  });
  </code></pre>
  
  <p>My problem is that I can't keep the folders object to persist after I call Folders.get(). It always comes back after I call Folders.data() as an empty object.</p>
  
  <p>Is there a way to keep this data stored in the Factory as a up-to-date representation of the Folder model that is not dependent on hitting the server every time?</p>
  
  <p>Running angular 1.2.3, on a Rails 4 API.</p>