It sounds like you want to use ng-route with, presumably multiple controllers to drive each step, and your question is, where to put your data along the way, since each controller is an instance that gets tossed when you move from one to the next.
If I've understood properly, then you might consider using an angular factory to hold your data model. Then inject the factory into each controller along the way so it can read and write it's portion of the data to the factory . Factories are singletons and as such their state (and the state of your data) won't change as you navigate through the steps.
Here's a very simple service for holding data:
(function () {
'use strict';
angular.module('myApp').factory('myDataService',
[function () {
var factory = {
someProperty: 'foo',
};
return factory;
}]);
})();
In your controllers, inject myDataService
and then you can get and set like so:
$scope.someProperty = myDataService.someProperty; //'foo'
myDataService.someProperty = 'bar';
$scope.someProperty = myDataService.someProperty; //'bar'