gpt4 book ai didi

angularjs - angular ui-router 和从父级访问子状态参数

转载 作者:行者123 更新时间:2023-12-03 22:38:39 25 4
gpt4 key购买 nike

编辑了更多细节

新手问题在这里,我敢肯定。我正在尝试做一些我认为很简单的事情,但我一无所获。

基本上,我有一个带有多个子状态的父状态。我想在父状态的解析中加载一些数据,以便所有子状态都可以使用它。为此,我需要一个传递给子状态的参数(上下文)可用。我是通过 $state.params 收到的.代码(为了清楚起见省略了一些)是这样的:

.state('pbr', {
url: "/pbr",
templateUrl: "pbr/pbr.html",
controller: "pbrBaseCtrl",
abstract: true ,
resolve: {
dpts: function(NavDPT, $state) {
return NavDPT.query({context: $state.params.context}).$promise;
}
}

})
.state('pbr.review', {
url: "/review/{context}?div",
templateUrl: "pbr/pbr-review.html",
controller: "pbrReviewCtrl"
})

据我了解, $state.params应该包含为父状态和子状态传递的参数,而 $stateParams只有事件状态的参数。

无论如何,我看到的是 $state.params在解析发生之前不会填充,因此数据获取失败。不过它最终会被填充。我似乎无法找到等待的方法 $state.params在获取数据之前可用。我试过在超时等中包装东西。

我尝试改为使用查询参数,并在父级别指定查询参数,并且我观察到相同的行为 - 解析发生时 newcontext 尚不可用。
 .state('pbr', {
url: "/pbr?newcontext",
templateUrl: "pbr/pbr.html",
controller: "pbrBaseCtrl",
abstract: true ,
resolve: {
dptsResource: 'NavDPT',
dpts: function(dptsResource, $state, $log) {
$log.info("state.params is also ",$state.params);
return dptsResource.query({context: $state.params.newcontext}).$promise;
}
}

})

谢谢。

最佳答案

an example展示我们如何访问 $stateParams即使在 resolve函数,但它们必须在当前或父状态中定义 (非 child )

所以,这些是状态:

  $stateProvider
.state('pbr', {
// we define 2 params oldContext and newContext
url: "/pbr/{oldContext}?newContext",
...
resolve: {
// here we can get all params defined for our state
dpts: function($state, $stateParams) {
return {
oldContext : $stateParams.oldContext,
newContext : $stateParams.newContext,
}
}
}
})
// child will have even the context as 3rd param
.state('pbr.review', {
url: "/review/{context}",
...
})

这些是如何调用它们的方法:
// via ui-sref
ui-sref="pbr.review({oldContext: 'abc1', newContext : 'def1', context : 'xyz1'})"
ui-sref="pbr.review({oldContext: 'abc2', newContext : 'def2', context : 'xyz2'})"

// via href
href="#/pbr/abc1/review/xyz1?newContext=def1"
href="#/pbr/abc2/review/xyz2?newContext=def2"

观察更多 plunker

关于angularjs - angular ui-router 和从父级访问子状态参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24301754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com