(多个)路由参数的集合

Collection of(multiple) route params

此路由配置

URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby
Route: /Chapter/:chapterId/Section/:sectionId

会导致:{chapterId:'1', sectionId:'2', search:'moby'}


然而,是否有可能通过 $routeParams 收集对象,例如:

 [
   {chapterId:'1', sectionId:'2', search:'moby'},
   {chapterId:'1', sectionId:'5', search:'mobydick'}
 ]

实现它的路由配置是什么?

你可以使用$location.search()

在您的示例中,它看起来像这样:

var searchObject = $location.search(); // => {search: 'moby'}

你可以阅读更多相关内容here,他们有一个很好的例子

我自己找到了一些解决方案:

url:

domain#/foo/whatever?id=1&id=2&name=Moo&name=Boo

路由配置

$routeProvider.when('/foo/whatever', {
  templateUrl: 'whatever.html',
  controller: 'WhatEverCtrler'
});

控制器:

module.controller('WhatEverCtrler',['$routeParams', function ($routeParams) {
  console.log('routeParams: ', $routeParams);
  // logs --> Object {id: Array[2], name: Array[2]}
}]);