Ember 路由器中是否可以有(未定义数量的)可选段?
Is it possible to have (an undefined number of) optional segments in the Ember router?
我想从数组中的 Ember 路由器收集额外的段。
这是一个虚构的 path
来说明我的意思:
this.route('group', {path: 'group/:group_id(/:segments[])*'}, function() {
是否可以使用这样的请求:
GET /group/123/some/path/segments
并将它们收集在一个数组中?
group.id = 123
segments = ['some', 'path', 'segments']
或者有什么方法可以定义可选段,这样我就可以添加很多并手动收集它们吗?
在后台,路由器使用 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
}
});
不是-found.hbs
404: /{{model}} not found!
这样 /foo/bar
产生:404: /foo/bar not found!
我想从数组中的 Ember 路由器收集额外的段。
这是一个虚构的 path
来说明我的意思:
this.route('group', {path: 'group/:group_id(/:segments[])*'}, function() {
是否可以使用这样的请求:
GET /group/123/some/path/segments
并将它们收集在一个数组中?
group.id = 123
segments = ['some', 'path', 'segments']
或者有什么方法可以定义可选段,这样我就可以添加很多并手动收集它们吗?
在后台,路由器使用 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
}
});
不是-found.hbs
404: /{{model}} not found!
这样 /foo/bar
产生:404: /foo/bar not found!