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

angularjs – ui-router在使用$state.go()时不运行父状态的解析

发布时间:2020-12-17 17:53:22 所属栏目:安全 来源:网络整理
导读:我有一个抽象的父状态,其解析承诺返回有关当前用户的信息.该信息被注入所有子状态的控制器中. 但是当我使用$state.go(‘parent.child’)时,解析promise函数没有被执行.如果我浏览到代表该状态的URL,它执行正常. 我是否需要在每个子状态上指定解析对象并从父
我有一个抽象的父状态,其解析承诺返回有关当前用户的信息.该信息被注入所有子状态的控制器中.

但是当我使用$state.go(‘parent.child’)时,解析promise函数没有被执行.如果我浏览到代表该状态的URL,它执行正常.

我是否需要在每个子状态上指定解析对象并从父状态中省略它?

解决方法

父状态解析仅针对给定的$stateParams值集合解析一次.如果父状态不依赖于$stateParams或不使用any,那么它的依赖关系只会被解析一次,而不管子状态是否有任何变化.

您看到的行为差异是子状态更改不会导致父资源被重新加载,而位置更改将在重新加载完整的父状态和子状态时发生.

您可以在此plunk中观察到此行为.

该示例在子状态所依赖的父状态中具有$stateParams值.通过$state.go或ui-sref更改状态(提供两种方法)将导致刷新父资源.但是,在不更改$stateParams参数的情况下将状态更改为子状态将不会刷新父资源,并且将提供先前返回的值.

(编辑:李大同)

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

    推荐文章
      热点阅读