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参数的情况下将状态更改为子状态将不会刷新父资源,并且将提供先前返回的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |