angular-ui路由器重新加载视图

时间:2013-11-30 06:45:00

标签: angularjs angular-ui

我在项目中使用angular-ui的路由器(v0.2.0),我们正在尝试重新加载视图。我已经尝试了$state.transitionTo$state.go,但似乎都没有做任何事情。有谁知道怎么做重装?

谢谢!

5 个答案:

答案 0 :(得分:7)

$state.go的第3个参数采用具有重载属性的选项对象,所以执行类似

的操作
$state.go('resources', {start: $stateParams.start}, {reload:true});

应该诀窍 - 在最新版本上,我可以确认它有效。

答案 1 :(得分:1)

在Angular UI route v0.2.5中,有第三个参数reload

  $state.transitionTo(to, toParams [, options])
  $state.go(to, toParams [, options])

第三个参数是可选的。

  $state.go('contacts', {sort: 'name' }, { reload: true });

答案 2 :(得分:0)

如果你再次从状态A进入状态A,则angular-ui的内部将禁止它重新加载状态。你必须去另一个州重新加载。这是为了避免在发出重新加载的同一链接上多次单击。

你可以尝试切换到相同的状态,但是如果你想要重新发布重新加载,那么使用稍微不同的参数。但在我看来,如果你处于同一状态,重新加载不应该发生。

在SO上也有类似的问题: $route.reload() does not work with ui-router

答案 3 :(得分:0)

如果您可以使用grunt并自行构建,则会有一个新的$ state.reload()功能。或者你可以等到v0.3即将到来。

答案 4 :(得分:0)

SimplGy对类似问题Reloading current state - refresh data的评论:

  

可能值得注意的是,这些都没有[编辑:意味着$ state.transitionTo(' state'),$ state.reload()或$ state.go($ state.current,{},{ reload:true})]实际上重新加载页面为   好。如果要重新加载状态和页面,则没有   ui-router方法我认为。做window.location.reload(true)

edhedges的另一个评论通过提及

的使用改进了这一点
$window.location.reload()

哪个有效,我建议用于重新加载ui-view。