角度状态得到了param孩子

时间:2015-02-03 14:15:51

标签: angularjs angular-ui-router angular-routing

我如何从孩子那里获得一个参数?

这就是我的所作所为:

$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'}
        })

1 个答案:

答案 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”控制器并允许他完成这项工作