我如何从孩子那里获得一个参数?
这就是我的所作所为:
$state.go('demo.content', {proces: '10'})
然后在控制器'Main'中我需要param proces的值。
.state('demo', {
url: '/',
abstract: true,
views: {
'main': {
templateUrl: './App/main.html',
controller: 'Main'
}
})
.state('demo.content', {
url: '/monitoring',
views: {
'chart': {
templateUrl: './App/chart.html',
controller: 'Chart'
},
'grid': {
templateUrl: './App/grid.html',
controller: 'Grid'
},
params: {proces: '4'}
})
答案 0 :(得分:0)
这里的要点是,对具有不同参数 'demo.content'
的process
的任何调用都应该重新调用/重新初始化此状态视图的控制器。
换句话说,只有作为此状态一部分的控制器才能使用process
作为注入参数的一部分。
因此,如果主控制器中确实存在需要处理(更改)进程ID的任何部分,则应将其移至demo.content
状态,作为另一个视图
如果这是真的,我们能做的最好的事情就是将该视图从父级转移到状态:
.state('demo.content', {
url: '/monitoring',
views: {
'chart': {
templateUrl: './App/chart.html',
controller: 'Chart'
},
'grid': {
templateUrl: './App/grid.html',
controller: 'Grid'
},
// this would do the stuff fro main controller
// based on changing params
'mainProcessor': {
templateUrl: './App/mainProcessor.html',
controller: 'mainProcessor'
}
这一点,只有这样,你才能确定,不同的参数值会触发“mainProcessor”控制器并允许他完成这项工作