我将AngularJS与angular-ui-router组件用于我的单页网站 .
如果我想切换到另一个视图(路径)并添加参数,我可以像这样组合使用$location.path()和$ location.search():
$location.path('/foo/bar/').search('q','foobar');
现在我还需要生成Urls(即填充我网站上的链接或提供深层链接 - 这里直接链接) . 所以我有一个服务,根据用户输入和状态参数生成并提供Urls .
通常我会让服务提供类似 /foo/bar/?q=foobar
的东西,但是每次我想用$ location设置这样的链接时我都必须使用字符串操作来去除GET参数,调用原始路径并将其余部分添加到.search中() .
var url = '/foo/bar/?q=foobar'
var tmpUrlParams = url.split('?')[1].split('&');
$location.path('url.split('?')[1]');
for (var i=0;i <= tmpUrlParams.length; i++){
$location.search(tmpUrlParams[i].split('=')[0], tmpUrlParams[i].split('=')[1]);
}
有更好的解决方案吗?我知道有...但它是什么?
1 回答
也许我只是在
$location
上使用url
方法,因为它会正确解释您的查询字符串参数?这是一个interactive jsFiddle,您可以使用它来自己查看$location api的各种值 .