我有一个$ 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更正,然后第二次调用并传递一个空对象。我假设这是我缺少角度的核心部分。
任何提示?
最佳。
答案 0 :(得分:0)
我无法为您推荐重构代码,但我相信答案是因为您执行了$ state.go()。您已经告诉应用程序在触发stateChangeSuccess时触发$ scope.getRoutes($ stateParams),因此当$ state.go()触发并且它成功更改状态时,$ scope.getRoutes($ stateParams)会再次被触发。