Angular $ location.path()和window.location.reload在Safari / Firefox中不起作用

时间:2015-09-17 19:04:59

标签: angularjs window.location

出于某种原因,这适用于IE和Chrome,但不适用于Safari和Firefox。

$location.path(lastPath);
$window.location.reload(true);

重新加载当前页面,而不是重新加载最后一个路径$window.location.reload(true)。在Chrome浏览器IE中,重新加载发生在角度$location.path(lastPath)发生之后。

3 个答案:

答案 0 :(得分:2)

感谢。以下解决了这个问题。

$window.location.href = lastPath;

答案 1 :(得分:2)

你可以这样做:

$window.location.href='#/home';
$window.location.reload()

答案 2 :(得分:2)

我正在使用角度为1.5.6的cordova进行开发。简单的行动:

$location.path("/someurl");
$window.location.reload();

适用于chrome和Android应用,但不适用于ios应用。适用于所有平台的是在位置路径发生变化后进行重新加载。

这是使用$locationChangeSuccess事件实现的。给定是一个完整的控制器代码,以便事情清晰。 $ location.path被标记​​,$ window.location.reload()被放置在$ 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);    // <---
});

});