gpt4 book ai didi

javascript - 访问handlebars.js/express-handlebars部分中的javascript变量

转载 作者:行者123 更新时间:2023-12-03 02:32:07 25 4
gpt4 key购买 nike

首先,很抱歉提出一个以前以类似方式提出的问题。我就是找不到任何适合我的解决方案。

我将handlebars.js与node.js中的express-handlebars库一起使用。我已正确设置服务器和客户端渲染,并且可以毫无问题地使用通过路由器传入的数据渲染部分内容。

但是,我正在努力访问页面上下文并呈现页面脚本中声明的 JavaScript 数据。

页面片段:

 <script type="application/javascript">var hash = {
var1:'this is the data I want to render',
var2: 'this is some more data i want to render'}</script>

<div id="thisdiv">
{{> blag this.hash}}
</div>

部分“blag”:

<div class="blag-partial">
{{this.var1}}
{{this.var1}}
</div>

我无法获取哈希变量中的值 var1 进行渲染。如果我将硬编码字符串传递给部分,那么它可以正常工作,但我似乎永远无法访问我所说的“页面上下文”。

我做错了什么,我似乎永远无法让它发挥作用?

我已经尝试过了...

  • 将“this”作为上下文传递到部分

  • 使用“../variablename”语法将其传递到部分

  • 将键值对发送到部分

  • 在部分调用和部分本身内部使用 @ 符号从上下文访问变量

...以及这些东西的许多其他组合。尝试 100% 失败,除非我传入硬编码字符串。

任何帮助将不胜感激。我觉得这应该很简单。

最佳答案

好的,为了解决这个问题,我需要更改 JavaScript,以实际分级对我想要输出的 div 的引用,然后注入(inject),然后使用我想要作为参数传递给模板的数据调用模板

var hash1 = {
var1:'this is the data I want to render',
var2: 'this is some more data i want to render'};
document.querySelector('#thisdiv').innerHTML = blagTemplate(hash1);

我将部分定义更改为:

<div class="blag-partial">
{{#with this}}
{{var1}}
{{var2}}
{{/with}}
</div>

我的第二个错误是我认为可以将此脚本内联到页面的脚本标记内,但它根本不起作用。

我认为我最大的错误是认为“express-handlebars”npm 模块实际上为我做的事情比它实际做的要多。实际上......它会自动编译我指定的任何目录中的模板和部分内容,仅此而已。

所以当我查看像 https://www.youtube.com/watch?v=4HuAnM6b2d8 这样的教程时例如,我实际上仍然需要执行相同的过程...我可以跳过编译过程,因为模板/部分已经在我的 Express Node 服务器中编译。

现在我意识到没关系,我只是误解了我应该期待的事情。如果有人有任何相反的知识,请随时分享。

我希望这可以帮助至少 1 个人,因为它让我沮丧了几个小时! :)

关于javascript - 访问handlebars.js/express-handlebars部分中的javascript变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48694911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com