【问题标题】:Having trouble converting this Jade to EJS无法将此 Jade 转换为 EJS
【发布时间】:2012-11-24 23:27:03
【问题描述】:

我正在尝试将 JShare 模块用于 Node/Express。

Github 上给出的例子说:

接下来,您需要在布局文件中调用 JShare 辅助方法:

!!!
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
    !{includeJShare()}
  body!= body

所以,这个例子是在 Jade 中。我正在使用 EJS,而对于我的生活,我无法弄清楚如何实现辅助方法...这看起来很简单,但我不确定 !{} 是做什么的在 Jade 中,或者如何在 EJS 中复制它。

【问题讨论】:

  • includeJShare() 是做什么的?因为在 ejs 中你可以做 <% include filename %>

标签: node.js express pug ejs


【解决方案1】:

!{var} 是玉中的非转义插值。您应该可以通过以下方式在 ejs 中获得相同的效果:

<%- includeJShare() %>

这应该写在&lt;script&gt;标签中。

编辑

如果 ejs 尝试解析 include,请向 https://github.com/brooklynDev/JShare/issues(或 ejs)提交补丁请求,同时进入 node_modules/JShare/jshare.js 并将 res.locals.includeJShare 更改为 res.locals.JShare,然后在你的 ejs 中使用 JShare()

【讨论】:

  • 这是我的猜测,但它正在返回:Error: ENOENT, no such file or directory 'C:\...\htdocs\www\_oodle\views\JShare().ejs' 我认为它正在尝试用“include”关键字解析它......就像@chovy 指出的那样,它是一个关键字,但我只是m 试图运行的是名为“includeJShare”的实际函数。
  • 啊,是的。该错误本来可以发布!现在,进入 node_modules/JShare/jshare.js 并将 includeJShare 更改为 JShare,然后在您的 ejs 中使用 JShare()。然后在这里提交问题:github.com/brooklynDev/JShare/issues
  • 谢谢!工作膨胀。它必须以&lt;%- JShare() %&gt; 的形式进入,这样它就不会逃脱script 周围的html 标签。
  • 再次感谢@glortho,我按照您的建议在 Github 上提出了一个问题。
  • @minttoothpick 我写了 JShare,感谢您让我注意到这一点。我刚刚发布了一个更新来解决这个问题。您现在可以在视图中调用 JShare() 或 includeJShare()(来自 Jade)。 NPM 版本也已更新。
猜你喜欢
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 2015-07-26
  • 2012-04-13
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2016-07-25
相关资源
最近更新 更多