状态angularjs $ stateProvider不传递参数

时间:2015-07-08 06:39:20

标签: javascript angularjs angular-ui-router

我使用标准的$ routeProvider进行路由时获得了当前的angularjs应用程序。我打算将$ stateProvider的应用程序的一部分用作向导。

我声明了父状态'Modal'和子状态'editClient',如下所示:

    $stateProvider.state('Modal', {
        views: {
            'modal': {
                templateUrl: '*urlHere*',
                controller: '*controllerHere'
            }
        },
        abstract: true
    });

    $stateProvider.state('Modal.editClient', {
        views: {
            "modal": {
                url: '/editClient/:id',
                templateUrl: '*templateHere*',
                controller: '*controllerHere*'
            }
        }
    });

在我的控制器中,我打电话:

$state.go('Modal.editClient', { id: 1});

然而$ stateParams是空的。怎么样?

我正在使用angular-ui-router版本0.2.15和angularjs 1.2.25。目前无法更新到更高的angularjs版本。

更新

我也尝试过:

    $stateProvider.state('Modal.editClient', {
        views: {
            "modal": {
                params: {
                    'id' : 0
                },
                templateUrl: '*templateUrlHere*',
                controller: '*controllerHere*'
            }
        }
    });

1 个答案:

答案 0 :(得分:2)

你没有在你定义状态的状态下传递参数,你需要做这样的事情。

 $stateProvider.state('Modal', {
        views: {
            'modal': {
                templateUrl: '*urlHere*',
                controller: '*controllerHere'
            }
        },
        abstract: true
    });

    $stateProvider.state('Modal.editClient', {
       params: {
                        'id': 0
                },
        views: {
            "modal": {
                url: '/editClient/:id',
                templateUrl: '*templateHere*',
                controller: '*controllerHere*'
            }
        }
    });