【问题标题】:Can I pass a handlebars template to handlebars template, and have it render both together?我可以将车把模板传递给车把模板,然后将两者一起渲染吗?
【发布时间】:2019-12-13 12:19:10
【问题描述】:

我的网站上有一个文章模板,然后将每篇文章存储为它自己的 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 传递给再次渲染的文章模板?

【问题讨论】:

    标签: node.js express handlebars.js


    【解决方案1】:

    你应该在注入之前编译文章模板:

    let temp = Handlebars.compile(articleHtml);
    res.render('article', {
        title: 'article title',
        html: temp(context),
    });
    

    context 是文章的 json 数据(如果没有则为空)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      相关资源
      最近更新 更多