2016-01-26 63 views
0

使用ui路由器如何完成以下URL更改?例如,當用戶轉到「/ page?hello = True」時,我希望url更改爲「/ page?status = hello」。使用UI路由器更改URL中的查詢參數

$stateProvider.state('page', { 
    url: '/page/:id?status', 
    controller: 'MyCtrl as myCtrl', 
    templateProvider: function($templateCache) { 
    return $templateCache.get('templates/route.html'); 
    } 
}); 
+0

可以使用'stateChangeStart'事件UI路由器更改URL的PARAMS。 – reptilicus

回答

1

可以使用stateChangeStart事件在app.run方法監聽狀態變化到這條路線,並更改所需的PARAMS什麼。這樣的事情,可能需要使用toStatetoParams玩得到它適合你...

.run(['$state', '$rootScope', function($state, $rootScope) { 
    $rootScope.$on('$stateChangeStart', function(e, toState, toParams, fromState, fromParams) { 

     if (toState.name === 'invitation') { 
      //change toParams to whatever you want 
     } 
    }); 
});