收集(多个)路线参数

时间:2016-03-28 20:58:05

标签: javascript angularjs angular-routing ngroute routeparams

此路线配置

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'}
 ]

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

2 个答案:

答案 0 :(得分:0)

您可以使用$location.search()

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

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

您可以阅读更多相关信息here,它们有一个很好的例子

答案 1 :(得分:0)

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

<强>网址:

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]}
}]);