AngularJS:Restangular - 如何从网址中删除查询参数
问题描述:
我使用查询参数“advertiserId”在Main.js中设置API基础网址。我想在Demo.js中删除查询参数advertiserId
。注意我不想使用$location
搜索参数(因为这些是从当前窗口URL搜索参数而不是我构建的URL)。AngularJS:Restangular - 如何从网址中删除查询参数
Main.js:
Restangular.setBaseUrl("localhost:9000/advertisers");
Restangular.setDefaultRequestParams({
"advertiserId": advertiserID
});
Demo.js
Restangular.RemoveRequestParams({
"advertiserId": advertiserID
});
答
您可以分析任何URL与此:
var parser = document.createElement('a');
parser.href = "http://example.com:3000/pathname/?search=test#hash";
parser.protocol; // => "http:"
parser.hostname; // => "example.com"
parser.port; // => "3000"
parser.pathname; // => "/pathname/"
parser.search; // => "?search=test"
parser.hash; // => "#hash"
parser.host; // => "example.com:3000"
编辑: 后删除一切(包括与)?
你可以用这个:
url.split("?")[0];
答
难道你不能也只是将默认值重置为Demo.js中的空对象?
Restangular.SetDefaultRequestParams({});
我猜你在Demo.js中使用的Restangular是来自Restangular Service的新创建的实例吗?
谢谢Michelem。有什么办法从URL中删除parser.search? – Inaccessible
我编辑了答案 –