是否可以使父路由成为 404,但子路由成为特定路由
Is it possible to make a parent route a 404, but the child route a specific route
在我的 router.js 文件中,我有如下内容
import EmberRouter from '@ember/routing/router';
const Router = EmberRouter.extend({});
Router.map(function () {
this.route('index', { path: '/' });
this.route('foo', function() {
this.route('bar', function() {
this.route('cat');
});
});
this.route('notfound', { path: '/*path' });
});
export default Router;
问题是我希望路径 /foo/bar/cat
路由到 foo.bar.cat
路由,但我不希望路径 /foo
或 /foo/bar
路由除了 404 以外的任何东西。在我的例子中,foo
和 bar
路由基本上是无用的。我只是希望 url 有 3 个级别用于美学目的。
我实际上意识到更有意义的是避免创建 foo
和 bar
路由并为我想要的路由创建路径。
所以不要在 ember-cli 中这样做:
ember g route foo/bar/cat
我刚刚做了
ember g route cat
然后我在路由器中设置了想要的路径。
Router.map(function () {
this.route('index', { path: '/' });
this.route('cat', { path: '/foo/bar/cat'});
this.route('notfound', { path: '/*path' });
});
这给了我 foo/bar/cat
的正确路线,但是 foo
和 foo/bar
都被路由到 notfound
路线。
在我的 router.js 文件中,我有如下内容
import EmberRouter from '@ember/routing/router';
const Router = EmberRouter.extend({});
Router.map(function () {
this.route('index', { path: '/' });
this.route('foo', function() {
this.route('bar', function() {
this.route('cat');
});
});
this.route('notfound', { path: '/*path' });
});
export default Router;
问题是我希望路径 /foo/bar/cat
路由到 foo.bar.cat
路由,但我不希望路径 /foo
或 /foo/bar
路由除了 404 以外的任何东西。在我的例子中,foo
和 bar
路由基本上是无用的。我只是希望 url 有 3 个级别用于美学目的。
我实际上意识到更有意义的是避免创建 foo
和 bar
路由并为我想要的路由创建路径。
所以不要在 ember-cli 中这样做:
ember g route foo/bar/cat
我刚刚做了
ember g route cat
然后我在路由器中设置了想要的路径。
Router.map(function () {
this.route('index', { path: '/' });
this.route('cat', { path: '/foo/bar/cat'});
this.route('notfound', { path: '/*path' });
});
这给了我 foo/bar/cat
的正确路线,但是 foo
和 foo/bar
都被路由到 notfound
路线。