angularjs – Angular ui-router解析两次
这让我在过去几个小时里疯狂了,我仍然无法找到解决方案……
基本上我在解析返回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看到 问题是您仍然位于/ profile / x / details.所以在stateChangeError中,当你执行$state.go(‘404’,{location:false});时,ui-router将检查url. 由于它没有在404中设置,他将采用他拥有的那个:/ profile / x / details.这就是他解决相同状态层次结构的原因:base,base.profile et base.profile.details. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |