玉:提供特定于路线的资源

时间:2012-01-26 12:26:58

标签: node.js express pug

在我./inc/footer.jade我有一堆脚本标签。我想仅在一个特定的路线上提供额外的脚本如何实现这一目标?

我可以做控制器:

res.render('someTemplate', {
  extraScript: true
});

并在footer.jade

- if (extraScript)
  <script src="/script.js"></script>

但是我必须在每一条路线中包含这个'extraScript'变量(设置为false)。

2 个答案:

答案 0 :(得分:1)

您可以使用typeof检查变量是否存在。

- if (typeof extraScript !== 'undefined')
  <script src="/script.js"></script>

通过这种方式,对于不需要其他脚本的所有路由,您只是不传入extraScript,然后在模板中,typeof extraScript !== undefined将被评估为{{1 }}

答案 1 :(得分:0)

extraScript解决方案有效,但我相信更好的解决方案是使用模板继承(阻止和扩展关键字)。这样您就不必在模板中添加逻辑和局部变量,并且仍然可以在您的玉标记中保留DRY。