我使用标准的$ 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*'
}
}
});
答案 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*'
}
}
});