title: Passing Data Between Pages in AngularJS + Page Refresh
body: <p>I am trying to pass data between pages in the checkout process of an app but it's not working the way it should. I have done some reading and most people recommend using a service, but the only issue is that when the page is refreshed (user clicks refresh or comes back at a later time) all the data from the service disappears. This makes sense since the data in a service is not meant to be persistent but it is causing a problem.</p>
  
  <p>So the question is: how can I pass data between pages in angularJS and still keep the data that was passed after a page refresh?</p>
  
  <p>Here is my code so far (with my attempt at using query strings):</p>
  
  <pre><code>.service('checkoutService', 
            function checkoutService($location, Address, $routeParams, TicketGroup) {
      var ticket_quantity = 0;
      var ticket_group = {};
      var selected_address = {};
  
      this.loadInformation = function() {
          if(!ticket_quantity &amp;&amp; $routeParams.ticket_quantity)
              ticket_quantity = $routeParams.ticket_quantity;
          if(!ticket_group &amp;&amp; $routeParams.ticket_group_id)
              ticket_group = TicketGroup.get({id: $routeParams.ticket_group_id});
          if(!selected_address &amp;&amp; $routeParams.address_id)
              selected_address = Address.get({id: $routeParams.address_id});
      }
  
      this.setTicketQuantity = function(quantity) {
          ticket_quantity = quantity;
          $location.path().search({ticket_quantity: quantity});
      }
      this.getTicketQuantity = function() {
          return ticket_quantity;
      }
  
      this.setTicketGroup = function(object) {
          ticket_group = object;
          $routeParams.ticket_group = object.id;
      }
      this.getTicketGroup  = function() {
          return ticket_group;
      }
  
      this.setSelectedAddress = function(object) {
          selected_address = object;
          $routeParams.address_id = object.id;
      }
      this.getSelectedAddress = function() {
          return selected_address;
      }
  });
  </code></pre>