这是我的州提供者的一部分:
$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',
侧边栏上的某些内容应根据objectId进行更改。我可以访问 $stateParams.objectId
中的ObjectDetailsController
,但我想在侧边栏控制器中访问它们。也许将它们传递给父级,然后父级应该将值传递给侧栏。
答案 0 :(得分:0)
您是否尝试通过params
中的$stateProvider
选项传递数据?
所以你的代码看起来像这样:
.state('layout.sidebar', {
abstract: true,
templateUrl: viewsRoot + "sidebar.html",
controller: 'SidebarController',
params: {id: 'value'}
})
您可以在视图中传递参数:
<a ui-sref="layout.sidebar({id: 'object.Id'})></a>