【问题标题】:How to ignore route param in location如何忽略位置中的路由参数
【发布时间】:2016-02-02 02:24:35
【问题描述】:

我正在导航到下一页:

$location.path("XXX/YYYY/");

当前视图的 URL 参数为:

http://www.go.com/?a=true;

现在当我导航时,它有 XXX/YYYY/"?a=true;

我试过了:

delete $routeParams.a;

delete $location.$$search.a;

但它不起作用。它不会删除参数。

导航到不同页面时如何设置路由参数?

【问题讨论】:

  • 我试过删除 $routeParams.a;删除$location.$$search.a;
  • 您使用哪个路由器? ngRoute 还是 ui-router?

标签: angularjs ngroute angularjs-ng-route


【解决方案1】:

以下更改解决了我的问题:

 delete $location.$$search.a;
 $location.replace().path("XXX/YYYY/");

 config: {           
            reloadOnSearch: false
         }

【讨论】:

    【解决方案2】:

    如果你想要这样的路径:

    http://www.go.com/
    

    你可以试试:

    $location.url($location.path());
    

    【讨论】:

    • 同时我还需要从当前页面的父页面中删除查询字符串,原因是当我执行 history.back 时,它会再次获取 routeparam 的参数
    【解决方案3】:

    我不知道这是否是最好的解决方案,但您可以尝试:

    if ($location.$$search.a) {
        delete $location.$$search.a;
        $location.$$compose();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-27
      • 2019-02-02
      • 2012-11-08
      • 2015-03-17
      • 1970-01-01
      • 2014-10-29
      • 2018-10-28
      • 2015-10-25
      相关资源
      最近更新 更多