39

我已经在 Angular 中设置了路由并且一切正常:

$locationProvider.html5Mode(true);
$routeProvider.
      when('/', { templateUrl: '/Home/Index' }).
      when('/User', { templateUrl: '/User/Index' });

但是,我现在有一个锚标记用作注销按钮,它只会将用户重定向到 /User/Logout,然后注销将注销用户并将他们重定向到登录页面。所以我想要的是 Angular js 忽略这个特定的路由并允许它做一个正常的 http 重定向。这似乎应该很容易,但我一直无法找到问题的解决方案。

我知道我可以做一个点击事件并在点击事件中做一个 window.location 更改,但这似乎是一种非常老套的方法。

4

2 回答 2

105

在您的锚点中指定target="_self",以便 angularjs 不会重写 URL。请参阅此处的讨论:http: //docs.angularjs.org/guide/$location

于 2013-07-01T14:41:18.923 回答
0

您也可以使用带有 redirectTo 的函数:

 .when('/User/Logout', {
            redirectTo: function(obj,path,search) {
                window.location.href=path;
            }
        })
于 2017-03-20T21:20:38.437 回答