Node.js 设置临时变量并在pug模板中进一步重用它
我试图将一些值从nodejs/express后端传递到模板中(使用res.render({…})),将其存储在一些变量中,然后将其进一步传递到前端(用例是我需要对传递的值进行一些温和的计算,并将其存储在一些中间变量中) 我知道我可以在哈巴狗档案里做这件事Node.js 设置临时变量并在pug模板中进一步重用它,node.js,express,pug,Node.js,Express,Pug,我试图将一些值从nodejs/express后端传递到模板中(使用res.render({…})),将其存储在一些变量中,然后将其进一步传递到前端(用例是我需要对传递的值进行一些温和的计算,并将其存储在一些中间变量中) 我知道我可以在哈巴狗档案里做这件事 block append script script. const foo = parseInt(#{stat.get('fooStat')}, 10); 但后来我似乎不能在我的哈巴狗模板中引用这个,比如这里 span #{f
block append script
script.
const foo = parseInt(#{stat.get('fooStat')}, 10);
但后来我似乎不能在我的哈巴狗模板中引用这个,比如这里
span #{foo}
这个值是空的,我猜是因为它没有定义。。。实现这一点的通常方法是什么。在
脚本
标记后添加句点向帕格发出信号,其内容应被视为纯文本。当您想要编写用于客户端消费的javascript时,这非常方便,但是任何声明的变量都是帕格无法访问的
script.
const foo = 10;
span #{foo} // foo is undefined here
如果要定义一个帕格稍后可以在模板中使用的变量,请使用
-const foo=10
span{foo}//10
我建议您仔细考虑这样做,我们发现,通常最好在路由(或路由中的模型)中执行此类操作,而不是将数据逻辑推送到模板中。我不是在猜测你的需求,只是把我们一路上学到的经验传授给大家。我最终按照你的建议做了,但我仍然想解决这个问题,在这种情况下,我需要这样做。似乎在这样做时,我以后无法附加变量(此处foo
)对于客户端JS进一步使用的windows对象(比如通过编写类似window.localNamespace.foo=foo
)@zebullon,您只需在脚本中执行即可。
块并使用插值将Pug变量的值呈现到客户端javascript文本中
- const foo = 10
span #{foo} // renders <span>10</span>