这个问题同样困扰我很久, 网上的回答五花八门, 全都不能解决; 终于在网上找很久, 看到某大神的解决办法, 整理作此分享; 使用 ui-router 重新加载当前页面的问题 (ui-router 版本需要是 0.2.14 以上的)
用 angular 做项目, 会碰到需要点击菜单刷新当前页面, 加载当前页面, 但是同一个路由页面点击没反应;
假设我们的路由页面 app.toMenu ;
- <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" ui-sref="app.toMenu" ui-sref-opts="{reload:true}">
- <!-- 网上普遍都说这样刷新, 但这个是整个页面也同时都刷新了 -->
其实, reload 除了可以传递布尔类型型参数, 还可以传 string 和 object 型参数, 如果只是想刷新当前的路由页面, 而不去连带刷新父路由, 我们可以把 reload 的参数值设置为当前路由页面标识
- <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" ui-sref="app.toMenu" ui-sref-opts="{reload:'app.toMenu'}">
- <!-- 这个方法刷新当前路由页面 -->
另外也可以用 $state.reload();
$state.reload() 是加载整个页面;
$state.reload('app.toMenu'); 加载当前页面;
- <a href=""ng-click=" rel="external nofollow" reloadCurPage()">
- <!-- controller 里面 $scope -->
- $scope.reloadCurPage = function(){
- $state.reload('app.toMenu');
- }
注: 如果标识是变量的话
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" ui-sref="{{k.value}}" ui-sref-opts="{reload:'{{k.value}}'}">
来源: http://www.jb51.net/article/136134.htm