我正在尝试访问外部服务中的$transition$
对象以解析值。
我的州定义如下:
$stateProvider.state(
'detailView.showDocument', {
url: '/:documentId',
views: {
'sidebar': {
component: 'thumbnailView',
},
'main': {
component: 'mainView',
}
},
params: {
document: null
},
resolve: {
document: 'resolveDocumentService',
}
}
);
我的服务如下所示:
service.$inject =[
'$transition$',
];
function service(
$transition$
) {
// do something
}
这会产生错误,因为无法注入$transition$
对象。
然后我找到了使用$uiRouterGlobals
的解决方案,但这对我来说似乎有点奇怪。
是否有任何理由在服务中无法使用$transition$
对象来解析转换的值?
答案 0 :(得分:0)
除了@estus'评论,您可以按如下方式更改配置:
resolve: {
document: [ '$transition$', function($transition$) {
// write your logic here as `$transition$` will be available here
} ]
}
此函数是可注入的,UI路由器会自动将所需的依赖项注入其中。另外,由于您正在配置特定状态,因此不会遇到XY问题。
答案 1 :(得分:0)
是的,我的错误是服务当然是单身人士。使用普通函数解决它而不是使用服务密钥。