如何用layout.hbs中的index.hbs代替BODY?

时间:2018-09-24 21:40:40

标签: express templates routes handlebars.js

在尝试自己将其用作工具之前,我试图更好地了解Handlebars的工作方式。

因此,我使用指定命令行作为我的视图引擎的express CLI设置了我的沙箱(express --view = hbs sandbox),它生成了适当的文件结构。

安装并按原样启动通用应用程序并导航到localhost:3000 /后,将提供预期的Express页面。

据我了解,通过导航到“ /”,我将触发在“ ./app”中引用的路由器,并最终在“ ./routes/index.js”中找到

...
var indexRouter = require('./routes/index');
...
app.use('/', indexRouter);

如果我看那条路线,我会看到它引用“索引”作为其视图,并将变量与之一起传递到所述视图。

router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

当我转到'./views/index.hbs'的视图时,我看到传递的信息在h1和p标签中被使用。

<h1>{{title}}</h1>
<p>Welcome to {{title}}</p>

如果我转到“ ./views/layout.hbs”并在此处进行修改,则当我访问“ index”时会显示它们。

<!DOCTYPE html>
<html>
  <head>
    <title>{{title}}</title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1>Just Checking!</h1>
    {{{body}}}
  </body>
</html>

在“ index”的路径或视图中均未引用“ layout.hbs”。

当我尝试查找视图引擎在做什么时,我只能真正尝试研究以下事实:它是一个带有三个括号的把手元素,而不是两个,它反复产生了“ Unescaped Element”的简单说明(例如: https://mustache.github.io/mustache.5.html

layout.hbs如何影响index.hbs?可以和哈巴狗中的“块”类似地使用吗?

其他研究:

似乎有人问过类似的问题(What does `{{{variable}}}` mean in handlebars?),答案也是我所发现的,但是它不能解释{{{body}}}以及它如何吸收索引信息。

0 个答案:

没有答案