【发布时间】:2014-02-16 21:13:52
【问题描述】:
当用户访问未经授权的私人页面时,例如配置文件,我的后端 302 会重定向到一个控制器操作,该操作提供登录部分来代替配置文件部分。由于它 302 重定向到返回部分的操作,因此 url 地址栏不会从用户尝试访问的页面(“/profile”)更改。
我打算“修复”这个问题,但实际上我认为它可以提供良好的用户体验,而不是将返回 url 作为查询参数处理。
这个想法是,一旦他们登录,我只想重新加载当前路由,也就是通过“/profile”对配置文件部分执行 GET 请求并将其切换回而不是登录部分。
但是,我无法让这个“重新加载当前路线”工作。我尝试了以下所有方法:
$location.$$compose();
$location.absUrl($location.path());
$location.url($location.path());
$location.path($location.path())
$route.reload();
但没有一个工作。 $route.reload() 似乎是确定的方式,但它也不起作用。它通过路由循环,重新实例化控制器,但不执行 GET 请求以重新加载模板
唯一可行的方法是通过location.reload() 进行硬刷新,但这并不理想。
如何强制 Angular 重新加载当前路线的模板?
【问题讨论】:
-
你试过 $location.path('mypath') 吗?
-
我不明白你的意思,$location.path 是一个函数。我无法设置,抛出错误
-
来自参考路径(路径)这个方法是getter / setter我没有任何问题像 $location.path('/post/index');如果它确实在同一条路线上工作,我唯一能想到的。
-
不起作用 :( 你认为这是一个错误吗(在 $route.reload() 中)
-
我真的不知道^^考虑到你没有比赛(你想重新加载当前拒绝加载的ie)
标签: angularjs