Sau khi hiển thị toàn bộ trang dựa trên một số bối cảnh người dùng và đã thực hiện một số $httpyêu cầu, tôi muốn người dùng có thể chuyển đổi bối cảnh và kết xuất lại mọi thứ một lần nữa (gửi lại tất cả các $httpyêu cầu, v.v.). Nếu tôi chỉ chuyển hướng người dùng ở một nơi khác, mọi thứ sẽ hoạt động đúng:
$scope.on_impersonate_success = function(response) {
//$window.location.reload(); // This cancels any current request
$location.path('/'); // This works as expected, if path != current_path
};
$scope.impersonate = function(username) {
return auth.impersonate(username)
.then($scope.on_impersonate_success, $scope.on_auth_failed);
};
Nếu tôi sử dụng $window.location.reload(), thì một số $httpyêu cầu auth.impersonate(username)đang chờ phản hồi sẽ bị hủy, vì vậy tôi không thể sử dụng yêu cầu đó. Ngoài ra, hack $location.path($location.path())cũng không hoạt động (không có gì xảy ra).
Có cách nào khác để kết xuất lại trang mà không phát hành lại tất cả các yêu cầu một cách thủ công không?