2016-08-24 101 views
0

好吧我不知道如何解决这个问题。我有以下状态:

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是完全空虚。

如果我使用一个字符串,一切正常。我使用的UI-路由器v0.2.18因为我读了对象是可能的,因为v.0.2.13

回答

0

您应该将state对象上添加params这样的:

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.ordernull,并且只要您发送参数$state.go("myState",{order:order})它将设置与该数据的值。