$ location路径删除参数

时间:2016-06-27 06:26:07

标签: javascript angularjs

我正在使用角度,并且有一个包含许多参数的复杂网址,类似于http://localhost:3000/#/faaacceptance?FAAFreqNauticalMileOption=20

出于某种原因,当我执行以下操作时:

var absUrl = $location.absUrl();
var test1= $location.path();
var test2= $location.url();

所有人都返回了一个没有查询参数的网址。

它只返回http://localhost:3000/#/faaacceptance

?之后的所有参数都被删除了,我无法弄清楚原因。控制器完成加载后,将删除url栏中的所有url参数。 我正在使用三角管理主题,这在我更新之后就开始发生了,但我不确定是否还有其他方法可以找出问题所在,因为我无法找到主题中会发生什么。我也更新了角度到最新版本,所以也许改变了一些东西。感谢您的帮助/

5 个答案:

答案 0 :(得分:0)

这是预期的行为,$location.path完全按照文档中的描述工作。

  

在没有任何参数的情况下调用时返回当前url的路径。

     

使用参数调用时更改路径并返回$ location。

     

注意:路径应始终以正斜杠(/)开头,此方法   如果缺少正斜杠,将添加正斜杠。

// given url http://example.com/#/some/path?foo=bar&baz=xoxo
var path> = $location.path(); 
// => "/some/path"

答案 1 :(得分:0)

您可以使用以下

之一
// given url http://example.com/#/some/path?foo=bar&baz=xoxo
var path = $location.path(); 
// => "/some/path"

因此,如果您需要使用完整路径

// given url http://example.com/#/some/path?foo=bar&baz=xoxo
var absUrl = $location.absUrl();
// => "http://example.com/#/some/path?foo=bar&baz=xoxo"

或仅使用参数路径

// given url http://example.com/#/some/path?foo=bar&baz=xoxo
var url = $location.url();
// => "/some/path?foo=bar&baz=xoxo"

答案 2 :(得分:0)

如果你想获得url param,你必须使用$routeParams谁是param / value的对象

app.controller('addController', ['$scope', '$routeParams','$location',
        function ($scope, $routeParams,$location) {

            console.log($routeParams);

}]);

您可以创建一个接受$ routeParams对象的函数,并根据需要重新创建查询参数

答案 3 :(得分:0)

您可以尝试 state.go 进行此类导航......

这个例子将简化您的代码

http://luxiyalu.com/reference-state-go-with-parameter/

答案 4 :(得分:0)

您始终可以使用具有所需所有必需属性的window.location对象。