在$http.get
中的run
方法中发出stateChangeSuccess
请求并重定向到某个州时,该应用会冻结。该应用程序不会遇到循环,而是冻结。
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
$http({
method: "GET",
url: '/some/api/endpoint',
}).then(function(response) {
// proceed with next route
}, function(response) {
$state.go('myNewState', {}, {reload: true});
});
});
知道为什么吗?
答案 0 :(得分:0)
除了我的评论之外 - 如果请求失败,您将重定向到myNewState
,然后由于循环状态更改而一次又一次地运行相同的请求。
尝试在请求之前添加此内容:
if( toState.name == 'myNewState' ) {
return;
}
如果您将用户重定向到myNewState