从控制器angularJs更改$ stateParams的值

时间:2017-09-13 10:10:55

标签: javascript angularjs angular-ui-router

这是我提供的路线:

.state('test.route', {
    url: '/test/:routeId',
    controller: 'RouterController',
    controllerAs: 'RCtrl',
    templateUrl:'app/components/test.view.html',
})

重定向到RCtrl后,我希望修改routeId的{​​{1}}值,而不调用$stateParams

2 个答案:

答案 0 :(得分:0)

转换开始时,uiRouter发出了一个名为$stateChangeStart的事件。您可以修改routeId那里

$rootScope.$on('$stateChangeStart', 
function(event, toState, toParams, fromState, fromParams, options){ ... })

答案 1 :(得分:-2)

如果您处于“test.route”状态并且想要在控制器中修改“routeId”的值,那么您唯一需要做的就是将“$ stateParams”的依赖项注入“RouteController”然后修改它。见这个例子:

RouteController.$inject = ['$stateParams'];

function RouteController($stateParams) {
  var vm = this;
  vm.routeId = $stateParams.routeId;
  vm.routeId = '123123123123';
}