【问题标题】:how can I redirect with angularjs如何使用 angularjs 重定向
【发布时间】:2014-12-16 18:49:49
【问题描述】:

当用户点击商店登陆页面上的一个类别时,会设置一个 sessionStorage 变量,您将被重定向到商店页面,但重定向很时髦

***旧代码(在 iOS 7.1.1 上有效但中断,我认为这是一个肮脏的 hack。它重定向到 root/shop)

.controller('myController', function ($scope) {
    $scope.sortCategory = function sortCategory(category) {
        sessionStorage.setItem('sortCategory', '.' + category);
        window.location.assign("/shop");
    };
})

***新代码(不起作用,重定向到 root/shop-landing#/shop)

.controller('myController', function ($scope, $location) {
    $scope.sortCategory = function sortCategory(category) {
        sessionStorage.setItem('sortCategory', '.' + category);
        $location.path("/shop");
    };
})

所需的网址是 root/shop。

这样做的正确方法是什么?

【问题讨论】:

  • 你用的是什么路由器? ng-route 还是 ui-router?
  • 模块正在使用ngRoute
  • 可以分享一下路由器代码吗?
  • 也许旧代码中断是因为它使用了“window”而不是“$window”。我在哪里可以找到路由器代码?
  • window.location.href = url 是在 javascript 中重定向到 URL 的标准方式。角度 $location 服务仅处理哈希路由

标签: javascript angularjs redirect


【解决方案1】:

你不能只使用window.location.href = '[enter_url_here]'吗?

这是使用 JavaScript 重定向用户的标准。

【讨论】:

  • 我正要回答 Alex Hills 的建议。这为我提供了所需的 URL,但必须等到它在 iOS 7.1.1 设备上进行测试才能查看它是否修复了导致的错误“window.location.assign()”。
  • 按钮在 iOS 7.1.1 上仍然无响应。
【解决方案2】:

你有两种可能。第一个是使用提到的属性:

window.location.href = '/shop';

$location 服务

$location.path('/shop');

plunkr 是一个工作示例。也许你可以像这样在你的路径中使用绝对导航:

window.location.href = '../shop';

【讨论】:

    猜你喜欢
    • 2012-08-08
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 2016-11-21
    • 2015-03-12
    • 2013-02-21
    相关资源
    最近更新 更多