设置临时变量并在pug模板中进一步重用它

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置临时变量并在pug模板中进一步重用它相关的知识,希望对你有一定的参考价值。

我试图将我的nodejs / express后端的一些值传递给模板(使用res.render({...})),将其存储在一些变量中,然后将其传递到前端(usecase是我需要对传递的值进行一些温和的计算并将它们存储在一些中间变量中)

我知道我可以在哈巴狗档案中这样做

block append script
  script.
    const foo = parseInt(#{stat.get('fooStat')}, 10);

但后来似乎我不能在我的哈巴狗模板中引用这个,比如说

  span #{foo}

值是空的,我猜是因为它是未定义的...通常的方法是什么。

答案

script标记信号之后添加句点以表示它的内容应该被视为计划文本。当您想要为客户端消费编写javascript时,这很方便,但是声明的任何变量都是pug无法访问的。

script.
  const foo = 10;

span #{foo} // foo is undefined here

如果要定义pug稍后可以在模板中使用的变量,请使用unbuffered code执行此操作。

- const foo = 10

span #{foo} // renders <span>10</span>

以上是关于设置临时变量并在pug模板中进一步重用它的主要内容,如果未能解决你的问题,请参考以下文章

条件片段和导航重用

pug模板引擎(原jade)

我不能用express.js执行jade(pug)

pug模板常见问题

如何为每个片段保存一个变量值以重用它? [关闭]

Laravel:如何在控制器的几种方法中重用代码片段