Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $location路径删除参数_Javascript_Angularjs - Fatal编程技术网

Javascript $location路径删除参数

Javascript $location路径删除参数,javascript,angularjs,Javascript,Angularjs,我使用的是angular,有一个包含许多参数的复杂URL,类似于http://localhost:3000/#/faaacceptance?FAAFreqNauticalMileOption=20 出于某种原因,当我执行以下操作时: var absUrl = $location.absUrl(); var test1= $location.path(); var test2= $location.url(); 所有返回的url都没有查询参数 它只返回http://localhost:3000/

我使用的是angular,有一个包含许多参数的复杂URL,类似于
http://localhost:3000/#/faaacceptance?FAAFreqNauticalMileOption=20

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

var absUrl = $location.absUrl();
var test1= $location.path();
var test2= $location.url();
所有返回的url都没有查询参数

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

之后的所有参数都将被删除,我无法找出原因。控制器完成加载后,url栏中的所有url参数都将被删除。
我正在使用三角形管理主题,这是在我更新它之后开始发生的,但我不确定是否有其他方法可以找出问题所在,因为我无法找到主题中的哪里会发生这种情况。我还将angular更新为最新版本,因此可能有些变化。感谢您的帮助

这是预期的行为,
$location.path
的工作原理与文档中的描述完全相同

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

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

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


你可以使用下面的一个

// 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"

如果要获取url参数,必须使用
$routeParams
谁是具有param/值的对象

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

            console.log($routeParams);

}]);

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

您可以尝试状态。对于此类导航,请转到

此示例将简化您的代码


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

实际上,它应该只返回
/faaaaccept
。为什么要返回查询参数?你读过这个方法的文档了吗?如果没有,则执行.From docs:$location.path()=>在调用时不带任何参数返回当前url的路径。使用$windows.location似乎是唯一显示完整url的方法。我在$location上有一个断点,没有一个选项的url被截断。嗯,问题是我的系统正在生成复杂的url,这些url保存在字符串中,用于重新加载系统状态,因此我需要能够从url获取查询参数,在我升级一些库之前,它100%工作正常。使用$window.location是唯一允许我获取完整url的方法。$location中的每个url都只有一个简短的版本,并且所有查询婴儿车都已剥离。我完全不知道为什么。嗯,我尝试了以下方法:var absUrl=$location.absUrl();var ewer=$location.path();var ewer=$location.url();所有返回的url都没有查询参数。使用$windows.location似乎是唯一显示完整url的东西。
app.controller('addController', ['$scope', '$routeParams','$location',
        function ($scope, $routeParams,$location) {

            console.log($routeParams);

}]);