如何使用AngularJS的ui-router提取查询参数?
在AngularJS自己的$location
服务中,我做到了:
($location.search()).uid
从URL中提取参数uid。ui-router对应的代码是什么?
发布于 2013-09-28 06:07:59
除非绑定到查询参数(参见文档),否则不能直接通过$state
或$stateParams
访问它们。使用$location
服务。
EDIT: Per the docs,如果您想在$stateParams
中捕获查询参数,可以将一个?
附加到您的url
中,并为每个查询参数命名,以&
分隔,即url: "/foo?bar&baz"
。
发布于 2013-11-24 00:58:07
请参阅URL routing documentation的查询参数部分。
您还可以将参数指定为查询参数,跟在‘?’后面:
url:"/contacts?myParam“//将与"/contacts?myParam=value”的url匹配
对于此示例,如果url为/contacts?myParam=value
,则$state.params
的值将为:
{ myParam: 'value' }
发布于 2015-12-10 09:13:29
ui路由器不像$location服务那样区分url中的不同类型的参数。
在您的控制器中,您可以使用$stateParams服务来访问url中所有不同类型的参数。
下面是一个来自ui-router wiki的示例:
// Then you navigated your browser to:
'/users/123/details/default/0?from=there&to=here'
// Your $stateParams object would be
{ id:'123', type:'default', repeat:'0', from:'there', to:'here' }
因此,在您的示例中,要查找uid参数,只需使用:
$scope.uid = $stateParams.uid
https://stackoverflow.com/questions/19053991
复制相似问题