gpt4 book ai didi

javascript - Ember 在查看子路由时隐藏父模板

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:18 26 4
gpt4 key购买 nike

我正在使用 Ember 为我的网站制作一个简单的博客。

我的路线:

Router.map(function() {
this.route('home', { path: '/' });
this.route('blog', function() {
this.route('post', {path: '/:post_id'});
});
});

我想要它,所以当我单击 /blog 中的帖子并结束在 /blog/:post_id 时,我隐藏了 blog 的内容。 hbs 文件,只显示blog/post.hbs 内容。

我尝试在我的 post.js 路由文件中明确指定渲染模板,但事情一直以同样的方式工作。

export default Ember.Route.extend({
model: function(params) {
return this.store.findRecord('post', params.post_id, { reload: true });
},
renderTemplate: function() {
this.render('blog/post');
}
});

阅读此处的文档并没有让我产生任何其他想法。

https://guides.emberjs.com/v1.13.0/routing/rendering-a-template/

我是否从根本上错误地使用了 Ember?如果我想隐藏父模板内容,我的帖子 URL 不应该是 Blog 的子路径吗?

最佳答案

抱歉,@remi 的回答完成了工作,但根据惯例,这不是正确的。

当你创建这样的东西时:

Router.map(function() {
this.route('blog', function() {
this.route('post', {path: '/:post_id'});
});
});

隐式创建

Router.map(function() {
this.route('blog', function() {
this.route('index', { path: '/' }); // <------ this one
this.route('post', {path: '/:post_id'});
});
});

因此,如果您有嵌套路由器,但不想嵌套模板,请将博客模板(和路由)重命名为 index.html。这将类似于重命名:

使用 POD

app/blog/route.js -> app/blog/index/route.js

app/blog/template.hbs -> app/blog/index/template.hbs

没有 POD

app/routes/blog.js -> app/routes/blog/index.js

app/templates/blog.hbs -> app/templates/blog/index.hbs

这记录在 Official guide 上(链接为最新版本,但也适用于旧版本)

关于javascript - Ember 在查看子路由时隐藏父模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34812757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com