In angular-ui-router, the states don't need to have an URL. See this answer.
This works fine when clicking through the UI, however, it seems that back navigation is broken that way:
http://plnkr.co/edit/kr7hyjc1q8i15vcSG9RR?p=preview
app.config(function($stateProvider, $urlRouterProvider, $locationProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: false,
}).hashPrefix('!');
$stateProvider.state({
name: 'home',
controller: function($scope) { },
template: '<h1>home state loaded</h1> ' +
'<div ui-view></div>'
});
$stateProvider.state({
name: 'home.foo',
controller: function() { },
template: '<h1>foo state loaded</h1> ' +
'<div ui-view></div>'
});
});
Do some state transitions, then right-click in the window and choose "back" in the context menu. Instead of going back one state, the frame becomes blank.
Is there a way to have states without associated URLs, but with working pushState / history?