我想从阵列中的Ember路由器收集额外的段。
这是一个虚构的path
,用以说明我的意思:
this.route('group', {path: 'group/:group_id(/:segments[])*'}, function() {
是否可以使用这样的请求:
GET /group/123/some/path/segments
并将它们收集在一个阵列中吗?
group.id = 123
segments = ['some', 'path', 'segments']
或者有什么方法可以定义可选段,所以我可以添加很多并手动收集它们?
答案 0 :(得分:1)
在后台,路由器正在使用route-recognizer确定路由。有star-segments
router.add([{ path: "/pages/*path", handler: page }]);
result = router.recognize("/pages/hello/world");
result === [{ handler: page, params: { path: "hello/world" } }];
这似乎是您要寻找的东西
请注意,这是我通常的404方法:
Router.map(function() {
...very last route
this.route('not-found', { path: "/*path"});
});
routes / not-found.js:
export default Route.extend({
model(params){
return params.path
}
});
not-found.hbs
404: /{{model}} not found!
使得/foo/bar
产生:404: /foo/bar not found!