(多个)路由参数的集合
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]}
}]);
此路由配置
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]}
}]);