$ stateChangeSuccess被击中两次

时间:2015-05-20 18:35:10

标签: angularjs angular-ui-router

我有一个$ http调用,它是在函数getRoutes内部发生的,只要该状态发生变化就会触发:

  $scope.$on('$stateChangeSuccess', function(event) {
    $scope.getRoutes($stateParams);
  })

我有另一个更改状态参数的函数,然后调用$ state.go():

  $scope.bindSelectedRoute = function(){
    $stateParams.pickup_route= this.d.pickup_route;
    $state.go('track.search', $stateParams);
  }

我的问题是http调用继续进行两次。首先使用$ stateParams更正,然后第二次调用并传递一个空对象。我假设这是我缺少角度的核心部分。

任何提示?

最佳。

1 个答案:

答案 0 :(得分:0)

我无法为您推荐重构代码,但我相信答案是因为您执行了$ state.go()。您已经告诉应用程序在触发stateChangeSuccess时触发$ scope.getRoutes($ stateParams),因此当$ state.go()触发并且它成功更改状态时,$ scope.getRoutes($ stateParams)会再次被触发。