单击相同的URL而不使用哈希重新加载页面

时间:2014-04-02 10:31:23

标签: angularjs angular-ui-router

我用这种方式设置了ui路由器:

  $stateProvider
  .state 'home',
    url: '/'
    template: JST['angular/templates/user/dashboard']
    controller: 'userDashboardCtrl'
  .state 'home.list',
    url: 'list'
    views:
      'content':
        template: JST['angular/templates/user/imageList']
        controller: 'imageListCtrl'
        resolve:
          favoriteOnly: -> false
  .state 'home.favorite',
    url: 'favorite'
    views:
      'content':
        template: JST['angular/templates/user/imageList']
        controller: 'imageListCtrl'
        resolve:
          favoriteOnly: -> true

我最终得到了一个像/users/dashboard#/list的网址,现在我在页面中有这个链接:

<a class="navbar-brand" href="/users/dashboard">&nbsp;</a>

然而,点击该链接并不会重新加载页面,它只会删除由ui-router重置的哈希值。

有没有办法让浏览器重新加载页面,就像我手动删除哈希并按回车一样?

1 个答案:

答案 0 :(得分:1)

可以使用$window.reload()刷新页面(您需要将$window注入控制器)。

但是,一般情况下,如果您只是刷新页面,那么您的应用处于不同的状态是不好的做法。 Angular应用程序是单页Web应用程序。它们应该只有一个整页加载,并且URL应该代表应用程序的状态(达到一些合理的分辨率)。

因此,您应该考虑应用如何将自己重置为用户期望的而不此页面刷新,而不是尝试重新加载页面。

相关问题