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

angularjs – Angular ui-router解析两次

发布时间:2020-12-17 07:24:06 所属栏目:安全 来源:网络整理
导读:这让我在过去几个小时里疯狂了,我仍然无法找到解决方案…… 基本上我在解析返回http 404状态代码时将状态更改为404.我正在更改$stateChangeError事件中的状态.一切正常,除非状态更改为404后,它会启动另一个状态更改回原来的状态,从而解析两次.状态本身仍然在
这让我在过去几个小时里疯狂了,我仍然无法找到解决方案……

基本上我在解析返回http 404状态代码时将状态更改为404.我正在更改$stateChangeError事件中的状态.一切正常,除非状态更改为404后,它会启动另一个状态更改回原来的状态,从而解析两次.状态本身仍然在404,所以它毕竟有效,但它仍然会产生额外的$http请求,这些请求是不需要的.但是,如果我使用$state.go(‘404’,null,{location:false})或者404状态根本没有定义URL,它只能这样工作.

如果我为404状态(/ 404)定义了一个url,那么一切正常.

这是2支钢笔,展示了这个问题:

失败的一个:http://codepen.io/cprfnaporf/pen/RaqmQN(调试模式,检查控制台:http://s.codepen.io/cprfnaporf/debug/RaqmQN/)

工作日期:http://codepen.io/cprfnaporf/pen/MyzdVQ(调试模式,检查控制台:http://s.codepen.io/cprfnaporf/debug/MyzdVQ/)

知道如何解决这个问题吗?我真的没有想法.

谢谢!

对我来说,你已经找到了解决方案.
的确,如您的代码中所述:
$urlRouterProvider.when('/','/profile/x/details');

默认网址是/ profile / x / details.当ui-router看到
该url,它将尝试加载状态层次结构:base,base.profile和base.profile.details.正如您所说,由于您捕获404错误并将请求重定向到其他位置,因此不会加载最后一个.

问题是您仍然位于/ profile / x / details.所以在stateChangeError中,当你执行$state.go(‘404’,{location:false});时,ui-router将检查url.

由于它没有在404中设置,他将采用他拥有的那个:/ profile / x / details.这就是他解决相同状态层次结构的原因:base,base.profile et base.profile.details.

(编辑:李大同)

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

    推荐文章
      热点阅读