是否可以使用angularjs和angular-ui-router在URL中设置任意可选参数?
我想我知道如何提取参数($stateParam.parameter
),但是如何在从一条路线导航到另一条路线时设置它们?简单地调用$state.go(newState, {param1: 'foo', param2: 'bar'})
似乎不起作用(在这种情况下,至少url不包含?param1=foo¶m2=bar
)。我不想事先将参数定义为状态定义的一部分。我希望用户填充它们。
答案 0 :(得分:0)
根据documentation,您可以将?
附加到网址。然后,您可以为每个查询参数命名,结果如下:/go-to?param1=hello¶m2=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'}