Zajmuję z Cordova z kątowym 1.5.6. Proste działanie:
$location.path("/someurl");
$window.location.reload();
działa w chrome i na Androidzie, ale nie w aplikacji ios. To, co działa na wszystkich platformach, polega na przeładowywaniu po zmianie ścieżki lokalizacji.
Osiąga się to przy użyciu zdarzenia $locationChangeSuccess. Podany jest pełny kod kontrolera, aby wszystko było jasne. Wartość $ location.path jest oznaczona, a $ window.location.reload() jest umieszczona w procedurze $ locationChangeSuccess.
angular.module("demo").controller("LoginCtrl", function($scope, $http, $location, $window) {
$scope.dologin = function() {
$scope.message = "";
$http.post(app.baseurl + "/app/login", {
email: $scope.email,
password: $scope.password
},
{
withCredentials: true
}).success(function(response){
$location.path("/dashboard"); // <---
}).error(function(response) {
$scope.message = "invalid user/pass: ";
});
}
$scope.$on('$locationChangeSuccess', function() {
$window.location.reload(true); // <---
});
});
dlaczego chcesz wywołać 'location.reload()'? A może po prostu pomiń '$ location.path()' – charlietfl
Chciałbym zmusić aplikację do przeładowania i wyczyszczenia stanu we wszystkich moich usługach. –
, więc po prostu ustaw adres URL z '$ window.location' – charlietfl