我在自己的网站上有文章的模板,然后将每个文章存储为自己的HBS文件。我用express渲染页面。将HTML注入到车把模板中很容易,但是我可以注入车把代码(无需先单独编译)吗?
这是我获取HTML和编译模板的简化版本:
var articleHtml = fs.readFileSync('top10things.hbs', 'utf8');
res.render('article', {
title: 'article title',
html: articleHtml,
});
这是文章模板的外观:
<h1>{{title}}</h1>
{{{html}}}
这对于html来说很好用,但是如果我的文章本身是一个车把模板,它只会打印出车把的内容,而不是渲染它。
有什么方法可以使把手同时呈现,而不必首先呈现文章内容的html,然后将该html传递到再次被呈现的文章模板?
答案 0 :(得分:0)
您应该在插入文章模板之前对其进行编译:
let temp = Handlebars.compile(articleHtml);
res.render('article', {
title: 'article title',
html: temp(context),
});
其中context是文章的json数据(如果没有则为空)