我刚从我们的QA团队获得了一个要求,我觉得这听起来很荒谬。这里是:假设你已经在基于角度的应用中的'about'状态/页面上,并且当你从顶部菜单中再次点击'about'状态url时,你想要重新加载'about'页面。 about
页面不会从任何地方获取数据,顺便说一下,重新加载仅仅等同于眨眼。AngularJS with ui.router:点击同一状态链接时重新加载页面
对于我的角度应用程序状态的配置是这样的:
.state('about', {
url: '/about',
templateUrl: '/path/to/about.html',
controller: 'aboutCtrl as aboutView'
});
而在顶部的菜单,我们有指向这个状态的链接:
<a ui-sref="about">About</a>
我已经尝试了很多东西让这个工作:单击链接触发重新加载相同的状态。
像$state.go('about', {}, {reload: true});
或$state.transitionTo('about', {}, {reload: true});
这样的东西不起作用,因为链接是静态的。
目前我正在一个不得已是通过听'$stateChangeSuccess'
事件来操作的角度在run
阶段重装的事情,但我不认为它会工作,因为如果你点击有没有状态变化都'about'
链接,而你正处于该状态。
有什么办法可以解决这个问题吗?谢谢
“我刚刚从我们的QA团队,我认为这听起来很可笑的请求” - 让我很快乐TY – scniro
高兴你有一个很好笑。我确实认为这是一个荒谬的要求,认为用ui.router不可能做到。我正在等一些专家来启发我。谢谢 – TonyGW
我不认为重新加载关于页面(我假设它是静态的)是一个很好的方式去出于几个原因 - 你的应用程序应该只是告诉用户他们已经在那个页面上。一个很好的例子是Material Design的动画,当你反复点击同一个选项卡时 - https://material.angularjs.org/latest/#/demo/material.components。标签 – JaKXz