好的,我不知道如何解决这个问题。我有以下状态:
var myState:ng.ui.IState = <ng.ui.IState> {
url: '/new/{order.orderNumber}',
controller: 'OrderController',
controllerAs: 'vm',
templateUrl: '/order.tpl.html',
resolve: {
order: ['OrderService', '$stateParams', '$q', duplicateOrder]
}
};
我带着:
来到这个州this.state.go("myState", {"order": order});
这不起作用,resolveFunction中的方法duplicateOrder无法找到订单对象,$ stateParams完全为空。
如果我使用String,一切正常。我使用UI-Router v0.2.18,因为我读过它自v.0.2.13起可以使用对象
答案 0 :(得分:0)
您应该在params
对象上添加state
,如下所示:
var myState:ng.ui.IState = <ng.ui.IState> {
url: '/new/{order.orderNumber}',
controller: 'OrderController',
controllerAs: 'vm',
templateUrl: '/order.tpl.html',
params:{order:null},
resolve: {
order: ['OrderService', '$stateParams', '$q', duplicateOrder]
}
};
这段代码的作用是使用$stateParams.order
初始化null
,每当您使用$state.go("myState",{order:order})
发送参数时,它都会使用该数据设置值。