我正在学习在我的网站中使用把手作为模板。
我正在使用node.js所以我使用了express-handlebars模块,因为它看起来很受欢迎并且有很多支持。
我设置了一些基本配置..
var exphbs = require('express-handlebars');
app.set('views', path.join(__dirname, 'views'));
app.engine('handlebars', exphbs({
defaultLayout: 'layout',
}));
app.set('view engine', 'handlebars');
我的理解是我在把手(即我的内容页面)中的视图是手柄中的模板,我认为这些模板正在代表我编译,以便我可以集中精力使用它们。
现在,我可以从我的node express路由器将数据传递到模板,然后使用把手符号{{variable}}访问和呈现模板中的数据。
那很好。但是....我想使用javascript在客户端声明变量,可能是因为从我想要输入的Ajax调用中获取一些数据。不幸的是,这似乎永远不会奏效我无法弄清楚如何在模板中访问局部变量。肯定有办法做到这一点?
#with块助手看起来很有希望但不幸的是它并没有达到我的预期。以下是我的一个内容页面的片段,其中有几次尝试在本地声明数据并呈现其值。
<div>
<script>let test = {
text: 'this is my example text'
};
</script>
<div>
{{#with test}}
{{text}}
{{/with}}
</div>
<div>
{{test.text}}
</div>
</div>
我阅读了很多文章并观看过很多视频,但我找不到有人使用'express-handlebars'模块然后渲染本地数据的地方。
我可能错过了一些显而易见的东西,但我现在已经挣扎了一段时间。
有人知道我怎么能这样做吗?
提前感谢。
答案 0 :(得分:0)
好的......看起来客户端模板必须使用webpack单独配置。我认为这是有道理的,因为快速手柄编译模板(它只是解析为普通的javascript,它采用我想要呈现的变量并包含在所需的html中)并且我无法通过我的客户端找到任何模板浏览器中的检查员。我还没机会尝试,但看起来很有希望:http://initialdigital.com/sharing-handlebars-templates-on-both-server-client-in-node-js-express-with-webpack/
答案 1 :(得分:0)
一直关注你的主题,并使用api
路径请求创建了一个非常类似于你发布的工作示例。
https://github.com/kroneman/client-and-server-handlebars
希望这会有所帮助。