如果这是我的州改变事件:
$state.go('MyState', { 'param1':'jimbob', 'param2':37});
MyStateCtrl如何获取这些值?
我试过了:
var param1 = $stateParams.param1
....
var param1 = $state.params.param1
....
每个都没有成功。
感谢异常值:
// state (via json)
"name" : "app.MyStateName",
"url": "/myView123/:param1/:param2",
// controller 1
$state.go('app.MyStateName', {param1: someValue1, param2: someValue2})
// controller 2
var param1 = $stateParams.param1;
var param2 = $stateParams.param2;
答案 0 :(得分:0)
在您的州定义中,您必须在url键的值中定义参数。
编辑:为了澄清,以下内容应该在州定义中作为关键/属性之一:
url: 'myurl/:myparam'
然而,值得注意的是,这会将myparam添加到网址中。如果您不想更改URL,则可以执行以下操作(ui-router的更新功能):
params: {
myparam: {
value: null,
squash: true
}
}
你可以通过在两种情况下调用$ stateParams.myparam来获取值。
value属性在传入之前设置param的默认值。squash: true
确保该值不会影响url。
了解更多信息:
http://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$stateProvider