2

我正在使用 angular 1 和新的组件路由器。我有这样的 $routeConfig :

{ path: '/list', name: 'ListCmp', component: 'listCmp', useAsDefault: true }

我想使用自定义查询参数导航到该组件。

$router.navigate(['ListCmp', {itemId: 1, name: 'prop1'}]);

导航后我得到这个 URL:localhost/list;name=1;prop1 问题是我有很多地方使用$location.search(),但是这种方法无法解析带有分号分隔值的 url。如何使这个新路由器生成旧式查询参数,例如:

localhost/list?name=1&prop1

4

1 回答 1

2

因为ListCmp是另一个组件的子路由,所以会以矩阵格式生成参数,而不是查询格式。您可以在此处阅读有关矩阵参数与查询参数的更多信息。

它的本质意思是“矩阵参数适用于特定的路径元素,而查询参数适用于整个请求”。

关于你的问题,你必须使用$location.search()吗?您可以使用$routerOnActivate生命周期挂钩并在ListCmp.

于 2016-06-02T13:08:01.680 回答