最佳答案
在基于几个用户上下文渲染整个页面并做出几个$http
请求之后,我希望用户能够切换上下文并重新渲染所有内容(重发所有$http
请求,等等)。如果我只是将用户重定向到其他地方,事情会正常工作:
$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);
};
如果我使用$window.location.reload()
,那么在auth.impersonate(username)
上等待响应的一些$http
请求将被取消,因此我不能使用它。另外,hack $location.path($location.path())
也不起作用(什么都没有发生)。
是否有另一种方法可以重新呈现页面,而无需再次手动发出所有请求?