I am not fully sure, what you want to achieve. So I would suggest, check this before you go your own way:
How to implement history.back() in angular.js
But, in case, you want to know how to keep the last state with angular and UI-Router, we can do it with a service. There is some naive implementation tracking just last state (not challenging the history.back())
Check the working example
Service definition:
.factory('PreviousState', ['$rootScope', '$state', function ($rootScope, $state) { var lastHref = "/home", lastStateName = "home", lastParams = {}; $rootScope.$on("$stateChangeSuccess", function (event, toState, toParams , fromState, fromParams) { lastStateName = fromState.name; lastParams = fromParams; lastHref = $state.href(lastStateName, lastParams) }) return { getLastHref: function (){ return lastHref ; }, goToLastState: function (){ return $state.go(lastStateName, lastParams); }, } }])
So we just do listen the $stateChangeSuccess and keep the track of last state name and its $stateParams.
We can inject our service to all scopes:
.run(['$rootScope', 'PreviousState', function ($rootScope, PreviousState) { $rootScope.PreviousState = PreviousState; }])
And we can use it as a click or href:
<button ng-click="PreviousState.goToLastState()">go back</button> <a ng-href="#{{PreviousState.getLastHref()}}" > go to last href</a>
Check that in action here