【问题标题】:Change Value of $stateParams from controller angularJs从控制器 angularJs 更改 $stateParams 的值
【发布时间】:2017-09-13 10:10:54
【问题描述】:

这是我提供的路线:

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

重定向到RCtrl 后,我希望在不调用$state.go("test.route",{"routeId": 1231}) 的情况下修改$stateParams 中的routeId 值。

【问题讨论】:

  • 获取价值 $stateParams.routeId

标签: javascript angularjs angular-ui-router


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我只想修改$stateParams.routeId,根据你重新加载页面后的解决方案$stateParams.routeId将具有原始值。我只想分配修改后的值
    • 重新加载后这条路线将有原始值但我想分配stateParams修改值
    • 对不起,我想念你。那么你将不得不使用 uiRouter 事件“$stateChangeStart”并修改你想要的参数。请参阅此文档:github.com/angular-ui/ui-router/wiki
    猜你喜欢
    • 1970-01-01
    • 2016-09-14
    • 2016-07-11
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    相关资源
    最近更新 更多