[英]UI-Router: sequential resolve of parent and child states
我有两个抽象状态parent
和parent.child
,以及一个可激活状态parent.child.grand
。
我想parent
要承诺解决之前parent.child.grand
获取其做出决议执行。 为什么? 因为parent.grand.child
需要来自parent
解析的ajax请求的某些数据。
这是一个要点
是否可以在不使用控制器的情况下顺序将父级的承诺链接到子状态?
( parent
解析开始 - >完成ajax请求 - >解析promise - > parent.child.grand
解析start - >完成ajax请求 - >解析promise
我已经看到了一些答案,但如果没有一个例子,它仍然不完全清楚。 文档说:
如果要在实例化子项之前等待解析promise,则必须将解析键注入子状态。
这是一个例子:
$stateProvider.state('parent', {
resolve:{
resA: function(){
return {'value': 'A'};
}
},
controller: 'parentCtrl'
})
.state('parent.child', {
resolve:{
// Adding resA as an argument here makes it so that this child state's resB resolve
// function is not run until the parent state's resA resolve function is completed.
resB: function(resA){
return {'value': resA.value + 'B'};
}
}
controller: 'childCtrl'
})
而且您不必将resA注入子控制器。
如果将auth
添加到孙子解析的依赖注入中,ui-router将在孙子解析之前解析它。
['authsrv', 'auth', function(authsrv, auth){}]
希望有道理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.