我正在使用角度,并且有一个包含许多参数的复杂网址,类似于http://localhost:3000/#/faaacceptance?FAAFreqNauticalMileOption=20
出于某种原因,当我执行以下操作时:
var absUrl = $location.absUrl();
var test1= $location.path();
var test2= $location.url();
所有人都返回了一个没有查询参数的网址。
它只返回http://localhost:3000/#/faaacceptance
?
之后的所有参数都被删除了,我无法弄清楚原因。控制器完成加载后,将删除url栏中的所有url参数。
我正在使用三角管理主题,这在我更新之后就开始发生了,但我不确定是否还有其他方法可以找出问题所在,因为我无法找到主题中会发生什么。我也更新了角度到最新版本,所以也许改变了一些东西。感谢您的帮助/
答案 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)
答案 4 :(得分:0)
您始终可以使用具有所需所有必需属性的window.location对象。