[英]Angular ui router -pass stateParams to other controller
This is part of my state provider: 这是我的状态提供程序的一部分:
$stateProvider.state('root', {
url: '',
abstract: true,
templateUrl: viewsRoot + "layout.html",
controller: 'LayoutController',
views: {
'container': {
templateUrl: viewsRoot + "container.html",
},
'sidebar': {
templateUrl: viewsRoot + "sidebar.html",
controller: 'SidebarController'
}
}
})
.state('layout.sidebar', {
abstract: true,
templateUrl: viewsRoot + "sidebar.html",
controller: 'SidebarController'
})
.state('layout.container', {
abstract: true,
templateUrl: viewsRoot + "container.html",
// controller: 'ObjectDetailsController'
})
.state('root.object-details', {
url:'object-details/:objectId',
templateUrl: viewsRoot + "object-details.html",
controller: 'ObjectDetailsController',
Some content on sidebar should change depending on objectId. 侧栏上的某些内容应根据objectId进行更改。 I can access $stateParams.objectId
in ObjectDetailsController
but I would like to access them in sidebar controller. 我可以在ObjectDetailsController
访问$stateParams.objectId
,但我想在侧边栏控制器中访问它们。 Maybe pass them to parent, and then parent should pass value to sidebar. 也许将它们传递给父级,然后父级应该将值传递给侧栏。
Did you try to pass the data via the params
options in $stateProvider
? 您是否尝试通过$stateProvider
的params
选项传递数据?
The API can be found here . 该API可以在这里找到 。
So your code can look like this: 因此,您的代码如下所示:
.state('layout.sidebar', {
abstract: true,
templateUrl: viewsRoot + "sidebar.html",
controller: 'SidebarController',
params: {id: 'value'}
})
You can pass the param inside the view: 您可以在视图内部传递参数:
<a ui-sref="layout.sidebar({id: 'object.Id'})></a>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.