我正在使用启用了html5Mode的UI路由器,状态是从JSON加载的。
F5之后或粘贴URL时的预期行为分别是当前状态重新加载或导航到所述状态,而是加载初始应用程序状态。
例如root / parent / child被重定向到root /.
顺便说一句,使用ui-sref导航工作正常。
那么,页面重新加载后如何保留状态?
答案 0 :(得分:1)
为了在重新加载app后保留页面状态,一个url代表应该给出的状态。当你包含ui-route模块时,url将被解析并发送到相应的状态。在大多数情况下,您不需要手动解析URL,ui-route就是为此而生成的。
答案 1 :(得分:0)
请你在这里发贴你的代码吗?特别是$ stateProvider。 这是一个正确的$ stateProvider的例子,它工作正常:
$stateProvider.state('main.admin', {
url: '/admin',
resolve: {},
views: {
'main-content@main': {
controller: 'AdminController as admin',
templateUrl: 'main/admin/admin.tpl.html'
}
}
});
答案 2 :(得分:0)
看起来有点hacky,但现在有效。
app.run(['$location', '$state', function ($location, $state) {
function stateFromUrl () {
var path = $location.path(),
hash = $location.hash();
// do JSON states map parsing and find a corresponding to the URL state
return state;
}
if (stateFromUrl) {
$state.go(stateFromUrl);
} else {
$state.go('home'); // initial state
}
}]);