加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 角度重载当前路径并重新加载当前模板

发布时间:2020-12-17 07:39:17 所属栏目:安全 来源:网络整理
导读:当使用者访问私人页面未经授权时,请查看个人资料,我的后端302将重定向到控制器操作,该操作可以用于部署登录,而不是部分配置文件.由于它302重定向到返回部分的操作,所以url地址栏不会从用户尝试访问的页面(“/ profile”)中更改. 我要“修复”,但实际上我认为
当使用者访问私人页面未经授权时,请查看个人资料,我的后端302将重定向到控制器操作,该操作可以用于部署登录,而不是部分配置文件.由于它302重定向到返回部分的操作,所以url地址栏不会从用户尝试访问的页面(“/ profile”)中更改.

我要“修复”,但实际上我认为这样做是一个很好的用户体验,而不是处理返回url作为查询参数.

这个想法是一旦他们登录,我只想重新加载当前的路由,再次通过“/ profile”对配置文件partial进行GET请求,并将其重新切换而不是登录部分.

但是,我不能得到这个“重新加载当前路由”工作.我尝试了以下所有内容:

$location.$$compose();
$location.absUrl($location.path());
$location.url($location.path());
$location.path($location.path())
$route.reload();

但没有工作. $route.reload()似乎是确定的方式,但它也不起作用.它通过路由周期,重新控制控制器,但不执行GET请求来重新加载模板

唯一有效的是通过location.reload()进行硬刷新,但这不是理想的.

如何强制有角度重新加载当前路由的模板?

好的,我发现lgalfaso在Github上提供的解决方案(精确粘贴):

Templates are
cached,if a user does not have the permissions to be in a page,then
this check should be done before it reaches the controller or after,
within the controller,but not on the template retrieval

If this is the way you want to follow,then you need to remove the
template from the $templateCache before you call reload

所以这对我来说是有效的,因为登录模板实际上被缓存为用户试图访问的模板.所以删除它,并让角度重新获取当前路线正确的一个像一个魅力.

var currentPageTemplate = $route.current.templateUrl;
$templateCache.remove(currentPageTemplate);
$route.reload();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读