stateParams in url of abstract state, ui-router, angularjs
stateParams in url of abstract state, ui-router, angularjs
如果我有一个抽象状态:
$stateProvider.
state('drug', {
abstract: true,
url: '/drug/:drugId',
template:
'<ui-view></ui-view>',
resolve: {
drugId : ['$stateParams', function($stateParams){
return $stateParams.drugId;
}]
}
}
有一些子状态,形式为:drug.x,drug.y
我想在应用程序的一个地方选择一个 drugId,它将通过抽象状态到达所有子状态,这样当我调用 'drug.x' 状态时,它将具有 drugId 值-
我在哪里以及如何使用 drugId 参数调用药物状态?
我知道我不能调用抽象状态本身。
谢谢。
您已经通过公开 $stateParams.drugId 作为解决方案完成了棘手的部分。现在你只需像这样将它注入你的子状态控制器:
$stateProvider.state('drug.x', {
controller: function(drugId) { } // drugId is injected from the resolve you defined in 'drug'
}
要向 drug.x
提供参数,您只需将其添加到转换参数中即可:
$state.go('drug.x', { drugId: 123 })
;
或
<a ui-sref="drug.x({ drugId: scopeVariable })">Go to drug.x for {{ scopeVariable }}</a>
如果我有一个抽象状态:
$stateProvider.
state('drug', {
abstract: true,
url: '/drug/:drugId',
template:
'<ui-view></ui-view>',
resolve: {
drugId : ['$stateParams', function($stateParams){
return $stateParams.drugId;
}]
}
}
有一些子状态,形式为:drug.x,drug.y 我想在应用程序的一个地方选择一个 drugId,它将通过抽象状态到达所有子状态,这样当我调用 'drug.x' 状态时,它将具有 drugId 值- 我在哪里以及如何使用 drugId 参数调用药物状态? 我知道我不能调用抽象状态本身。
谢谢。
您已经通过公开 $stateParams.drugId 作为解决方案完成了棘手的部分。现在你只需像这样将它注入你的子状态控制器:
$stateProvider.state('drug.x', {
controller: function(drugId) { } // drugId is injected from the resolve you defined in 'drug'
}
要向 drug.x
提供参数,您只需将其添加到转换参数中即可:
$state.go('drug.x', { drugId: 123 })
;
或
<a ui-sref="drug.x({ drugId: scopeVariable })">Go to drug.x for {{ scopeVariable }}</a>