Transferencia de datos entre páginas en AngularJS + Actualización de página

Estoy tratando de pasar datos entre páginas en el proceso de pago de una aplicación, pero no funciona como debería. He leído un poco y la mayoría de la gente recomienda usar un servicio, pero el único problema es que cuando la página se actualiza (el usuario hace clic en Actualizar o vuelve más tarde) todos los datos del servicio desaparecen. Esto tiene sentido ya que los datos en un servicio no están destinados a ser persistentes, pero están causando un problema.

Entonces, la pregunta es: ¿cómo puedo pasar datos entre páginas en angularJS y aún conservar los datos que se pasaron después de una actualización de página?

Aquí está mi código hasta ahora (con mi intento de usar cadenas de consulta):

.service('checkoutService', 
          function checkoutService($location, Address, $routeParams, TicketGroup) {
    var ticket_quantity = 0;
    var ticket_group = {};
    var selected_address = {};

    this.loadInformation = function() {
        if(!ticket_quantity && $routeParams.ticket_quantity)
            ticket_quantity = $routeParams.ticket_quantity;
        if(!ticket_group && $routeParams.ticket_group_id)
            ticket_group = TicketGroup.get({id: $routeParams.ticket_group_id});
        if(!selected_address && $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;
    }
});

Respuestas a la pregunta(2)

Su respuesta a la pregunta