在angular-ui-router中,状态不需要URL。参见this answer。
这在单击UI时效果很好,但是,似乎反向导航被破坏了:
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>'
});
});
执行一些状态转换,然后在窗口中右键单击并在上下文菜单中选择“返回”。框架没有返回一种状态,而是变为空白。
是否有一种方法可以使状态不具有关联的URL,但具有有效的pushState /历史记录?