[SOLVED] How-to exclude route from history


Is there a way to exclude a route from the history stack?

Example: (where -> = state.go)

route1 -> route2 -> route3 -> route2

If I then click the “Back” button on the “route2” I want to be forwarded to “route1” and not to be forwarded back to the route3.


disableBack: true

no success


$state.go(‘route2’, null, { location: ‘replace’ });

no success

Any ideas?

Thx in advance


Try with goBack


You can go back n views like this : `$ionicHistory.goBack(-n);

backCount is optional negative integer setting how many views to go back. By default it’ll go back one view by using the value -1. To go back two views you would use -2. If the number goes farther back than the number of views in the current history’s stack then it’ll go to the first view in the current history’s stack. If the number is zero or greater then it’ll do nothing. It also does not cross history stacks, meaning it can only go as far back as the current history.

Thx Destroy, that’s a pretty good idea. With it I’m almost there


route1 -> route2 -> route3 .> route2

where -> = state.go and .> = $ionicHistory.goBack()

the history is maintained as excepted. When I land on the last “route2”, if I perform another “Back” button click, I’ll land then on “route1”, perfect.

Now, from “route3” to “route2” I want to pass some parameters thru stateParams

so I tried then

$ionicHistory.backView().stateParams = {
lat: lat, lng: lng

but strangely, adding the stateParams, change the behavior. When I land on “route2”, if I perform a back button click, then I’ll no more land on “route1” but on “route3” ?!!?

any clue?

Solved with the help of a service finally.

On the action in ‘route3’ I do:


And in ‘route2’:

$scope.$on(’$ionicView.loaded’, function() {
var selectedValue = MyService.getLastValue();


and since I use ‘$ionicView.loaded’, added cache-view=“false” to reload it after coming back

Good, let’s move forward