angular 状态获取参数 child

angular state get param child

如何从 child 获取参数?

我就是这样做的:

$state.go('demo.content', {proces: '10'})

然后在控制器中 'Main' 我需要参数过程的值。

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

这里的重点是,任何使用不同参数 process'demo.content' 的调用都应该 re-call/re-init 这种状态视图的控制器。

换句话说,只有属于此状态的控制器才能使用 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" 控制器并让他完成工作