Nodejs Express handlebars 如何在没有模板的情况下将 .hbs 包含在另一个 .hbs 中
Nodejs Express handlebars how to include .hbs inside another .hbs without templates
如何在没有模板的情况下将 .hbs 包含在另一个 .hbs 中?我正在为 Nodejs wih Express 使用基于组件的体系结构,我需要包含 hbs 文件,其中包含用于在 {{values}}
和 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 文件中将 .hbs 与它自己的 js 结合起来,好的,但我想将这些部分分开。
我为这种情况找到了一个干净的解决方案,将这些部分放在单独的文件中(当您在组件中拥有视图而不是在单个路径上拥有所有视图时,比任何类型的复杂模板系统都简单)。
在加载包含我可能需要的所有字符串值的脚本之前,.hbs 可能是一个小字典。
<script>
var hello = "{{{lang.hello}}}";
</script>
<script src="viewScript.js"></script>
这个方法很简单,不要复制任何东西,让我用 jquery 和更多东西做动态名称。
如何在没有模板的情况下将 .hbs 包含在另一个 .hbs 中?我正在为 Nodejs wih Express 使用基于组件的体系结构,我需要包含 hbs 文件,其中包含用于在 {{values}}
和 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 文件中将 .hbs 与它自己的 js 结合起来,好的,但我想将这些部分分开。
我为这种情况找到了一个干净的解决方案,将这些部分放在单独的文件中(当您在组件中拥有视图而不是在单个路径上拥有所有视图时,比任何类型的复杂模板系统都简单)。
在加载包含我可能需要的所有字符串值的脚本之前,.hbs 可能是一个小字典。
<script>
var hello = "{{{lang.hello}}}";
</script>
<script src="viewScript.js"></script>
这个方法很简单,不要复制任何东西,让我用 jquery 和更多东西做动态名称。