【问题标题】:How to display a template without displaying it inside the layout template?如何在布局模板中显示模板而不显示它?
【发布时间】:2017-08-07 18:09:35
【问题描述】:

也许我的问题有点不清楚,但我相信你会明白的。

所以在我的 Ironrouter 配置中,我有以下代码:

Router.configure({
  layoutTemplate: 'layout',
  notFoundTemplate: '404',
  loadingTemplate: 'loading',
  fastRender: true,
});

问题是当我想显示 404 错误时,它会在 layout 模板中插入 404 错误模板,所以它有点难看:

布局是左侧菜单和顶部栏+页脚。这是模板,因为我在任何地方都使用它。

那么我怎样才能只显示模板404而不把它放在模板layout中呢?

【问题讨论】:

  • 您可以在每条路由上设置布局,并从 Router.configure 中删除默认布局
  • 但是到处放东西是不合逻辑的(这意味着它是默认的)不是吗? @mutdmour
  • 是的,除了 404 页面之外的任何地方,因为它不在 Router.configure

标签: javascript templates meteor iron-router


【解决方案1】:

没有干净的方法可以做到这一点,但是我过去曾使用过此 hack。使用这样的路由定义,其中 'errorLayout' 指的是一个模板,它是一个仅针对 404 错误的特殊布局。

Router.route('/(.*)', function() {
   this.layout('errorLayout');
   this.render('404');
   this.next();
});

黑客最初来自here

【讨论】:

  • 很好,是的,我更喜欢这个而不是@mutdmour的方法,所以谢谢你的输入
猜你喜欢
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
  • 2014-11-30
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多