最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Nodejs Express把手如何在没有模板的情况下将.hbs包含在另一个.hbs中

运维笔记admin6浏览0评论

Nodejs Express把手如何在没有模板的情况下将.hbs包含在另一个.hbs中

Nodejs Express把手如何在没有模板的情况下将.hbs包含在另一个.hbs中

如何在没有模板的情况下将.hbs包含在另一个.hbs中?我正在使用基于组件的Nodejs架构和Express,我需要包含内容的hbs文件,以便在html和js两侧使用{{values}},而不需要复制任何东西并清理。

我试过像这样使用partialsDir:

app.engine('.hbs', exphbs({
    defaultLayout: 'layout',
    extname: '.hbs',
    layoutsDir: path.join(__dirname),
    partialsDir: [
        path.join(__dirname, 'dashboard', '_public', 'main'),
        path.join(__dirname, 'home', '_public', 'main')
    ]
}));

但它获取了所有路径的所有视图的所有脚本。并使用{{>viewScript}}(模板)它加载所有.hbs(当我回家时,我有家庭部分.hbs,当我去仪表板我有家和仪表板部分.hbs,所以这对我不起作用。

我尝试使用src,但它不起作用(mime错误)

<script src="viewScript.hbs"></script>

我可以将.hbs和它自己的js组合在一个.hbs文件中,好吧,但我想把这些碎片分开。

回答如下:

我为这种情况找到了一个干净的解决方案,将这些部分放在单独的文件上(当你在组件中拥有视图而不是在单个路径上拥有所有视图时,比任何类型的复杂模板系统更简单)。

在使用我可能需要的所有字符串值加载脚本之前,.hbs可能是一个小字典。

<script>
    var hello = "{{{lang.hello}}}";
</script>
<script src="viewScript.js"></script>

这个方法很简单,不要复制任何东西,让我用jquery和更多的东西做动态名称。

发布评论

评论列表(0)

  1. 暂无评论