如何让Jade(pug)包含的文件访问变量?

时间:2018-12-06 15:05:27

标签: pug

您好,有两个翡翠(现在称为哈巴狗)模板:

  • page.jade
  • portion.jade

在page.jade中,代码如下:

// page.jade
include portion.jade
script.
  var text = "#{var}"; // will convert to the variable I passed in.

#{var}部分将成功转换为我想要的内容。

但是,如果我将这一行放在part.jade中,它将失败:

// portion.jade
script.
  var text = "#{var}"; // fails to convert, remains #{var}

如何访问包含的玉文件中的变量?

1 个答案:

答案 0 :(得分:0)

将变量放入script元素中时,会将其作为JavaScript发送到浏览器。如果您在呈现的页面中查看源代码,则会看到以下内容:

<script>
  var text = "#{var}";
</script>

相反,您想使用-escape your code在模板中使用此变量:

- var text = "#{var}";

请注意,那里没有script.标签。

但是,有些事情告诉我,一旦解决了这个问题,就会弹出另一个问题。 pug不会进一步评估该字符串,它将作为字符串输出。

我强烈建议您整理出路由中的所有变量,而不要尝试在模板或包含的文件中做一些棘手的事情。以我的经验,在模板内创建变量几乎是没有必要的,经常会导致错误,并且可能难以调试。