AngularJS。页面重新加载后保留状态

时间:2015-05-18 08:03:29

标签: angularjs angular-ui-router

我正在使用启用了html5Mode的UI路由器,状态是从JSON加载的。

F5之后或粘贴URL时的预期行为分别是当前状态重新加载或导航到所述状态,而是加载初始应用程序状态。

例如root / parent / child被重定向到root /.

顺便说一句,使用ui-sref导航工作正常。

那么,页面重新加载后如何保留状态?

3 个答案:

答案 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
  }
}]);