Viac na
Ako znovu načítať alebo vykresliť celú stránku pomocou AngularJS
Po vykreslení celej stránky na základe niekoľkých používateľských kontextov a po vykonaní niekoľkých požiadaviek $http
chcem, aby používateľ mohol prepnúť kontext a znovu všetko vykresliť (opätovné odoslanie všetkých požiadaviek $http
atď.). Ak používateľa len presmerujem niekam inam, všetko funguje správne:
$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);
};
Ak použijem $window.location.reload()
, tak sa zrušia niektoré $http
požiadavky na auth.impersonate(username)
, ktoré čakajú na odpoveď, takže to nemôžem použiť. Takisto nefunguje ani hack $location.path($location.path())
(nič sa nestane).
Existuje nejaký iný spôsob, ako znovu vykresliť stránku bez toho, aby som musel ručne znova vystaviť všetky požiadavky?
296
3
Ak chcete prinútiť angular, aby znovu vykreslil aktuálnu stránku, môžete použiť:
Podľa AngularJS dokumentácia:
Na opätovné načítanie stránky pre danú trasu :-
Možno ste zabudli pridať "$route" pri deklarovaní závislostí vášho Controllera: