Параметры запроса маршрутизатора компонента Angular 1

Я использую 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


person Andzej Maciusovic    schedule 24.05.2016    source источник


Ответы (1)


Поскольку ListCmp является дочерним маршрутом другого компонента, параметры будут генерироваться в матричном формате, а не в формате запроса. Подробнее о параметрах матрицы и параметрах запроса можно прочитать здесь.

По сути, это означает, что «параметры матрицы применяются к конкретному элементу пути, а параметры запроса применяются к запросу в целом».

Что касается вашей проблемы, вам нужно использовать $location.search()? Вы можете использовать хук жизненного цикла $routerOnActivate и получить доступ к параметрам в вашем файле ListCmp.

person andreiho    schedule 02.06.2016