Angular-UI路由器:在路由中设置任意GET参数

时间:2015-06-06 12:35:41

标签: javascript angularjs angular-ui-router

是否可以使用angularjs和angular-ui-router在URL中设置任意可选参数?

我想我知道如何提取参数($stateParam.parameter),但是如何在从一条路线导航到另一条路线时设置它们?简单地调用$state.go(newState, {param1: 'foo', param2: 'bar'})似乎不起作用(在这种情况下,至少url不包含?param1=foo&param2=bar)。我不想事先将参数定义为状态定义的一部分。我希望用户填充它们。

1 个答案:

答案 0 :(得分:0)

根据documentation,您可以将?附加到网址。然后,您可以为每个查询参数命名,结果如下:/go-to?param1=hello&param2=world。这是关于这个主题的好读物:link

此外,如果您想要完全随意的参数,则应使用$location.search()而不是$ stateParams。 (Docs

使用$location.search()获取/设置GET参数的示例:

// given url http://example.com/#/some/path?foo=bar&baz=xoxo
var searchObject = $location.search();
// => {foo: 'bar', baz: 'xoxo'}

// set foo to 'yipee'
$location.search('foo', 'yipee');
// $location.search() => {foo: 'yipee', baz: 'xoxo'}