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

前端之家收集整理的这篇文章主要介绍了angularjs – ui-router在使用$state.go()时不运行父状态的解析承诺前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个抽象的父状态,其解析承诺返回有关当前用户的信息.该信息被注入所有子状态的控制器中.

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

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

解决方法

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

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

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

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

猜你在找的Angularjs相关文章