我用这种方式设置了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"> </a>
然而,点击该链接并不会重新加载页面,它只会删除由ui-router重置的哈希值。
有没有办法让浏览器重新加载页面,就像我手动删除哈希并按回车一样?
答案 0 :(得分:1)
可以使用$window.reload()
刷新页面(您需要将$window
注入控制器)。
但是,一般情况下,如果您只是刷新页面,那么您的应用处于不同的状态是不好的做法。 Angular应用程序是单页Web应用程序。它们应该只有一个整页加载,并且URL应该代表应用程序的状态(达到一些合理的分辨率)。
因此,您应该考虑应用如何将自己重置为用户期望的而不此页面刷新,而不是尝试重新加载页面。