【问题标题】:Request url when html5Mode(true)html5Mode(true)时请求url
【发布时间】:2013-10-18 13:10:13
【问题描述】:

我已启用$locationProvider.html5Mode(true)

但是我有 django 作为后端。在/logout/ 上,我需要直接向服务器询问网址,就像$locationProvider.html5Mode(false) 或只是访问:example.com/logout/ 而不是在前端。

我应该使用哪个角度命令来“强制”询问服务器的/logout/ url?

【问题讨论】:

  • 一种方法是使用 window.location = "example.com/logout/" 绕过 AngularJS
  • @LostInComputer 你能否为我创建一个带有最佳处理程序的示例(我猜是$watch-ing $location$routeProvider)?谢谢
  • 为什么要直接设置url?你想做什么?
  • @davekr 我在urls.py url(r'^logout/$', logout, name='logout'),。视图为:def logout(request): auth_logout(request);return HttpResponseRedirect('/');。所以我需要一种方法来使用该视图验证注销用户(如果重要,我使用python social auth)。
  • @Diolor 那么为什么不从视图返回带有重定向 url 的 json,然后在前端使用它并将 $location 更改为 url?

标签: angularjs angularjs-routing


【解决方案1】:

编辑:原来是两种可能的解决方案:

1) 见 Telling Angular Js to ignore a specific route

2) 或者使用 $window.location。

这是一个例子:

$scope.onLogoutClicked = function() {
    $window.location = "http://google.com";
}

$window.location 和 $location 的区别

我应该什么时候使用 $location?

任何时候您的应用程序需要对当前 URL 的更改或您想要更改浏览器中的当前 URL 做出反应。

它不能做什么? 当浏览器 URL 更改时,它不会导致整个页面重新加载。要在更改 URL 后重新加载页面,请使用较低级别的 API,$window.location.href。

注意事项:

  • $window 是 window 的包装器,因此可以对其进行单元测试。
  • $window.location = "URL" 和 $window.location.href = "URL" 同样的事情

【讨论】:

    猜你喜欢
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 2014-12-06
    • 2014-11-21
    • 1970-01-01
    • 2016-05-30
    相关资源
    最近更新 更多