handlebars 模板内简单js语句实现

发布于 2022-08-28 12:54:44 字数 323 浏览 19 评论 0

ejs :

<% new Date().getDate() %>

jade :

#{new Date().getDate()}

类似的?
我在官网看了又看没有发现类似的解决方法。
难道必须要依靠 helpers 来实现?
如果用 helpers 实现的话能否给个安全/高效的方法?谢了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遮云壑 2022-09-04 12:54:44

HandleBar / DustJS / Mustache 的灵魂就在于Logic Less 也就是模板内只有模板输出,没有业务逻辑,不允许在模板里执行表达式或者语句

helper也是只一个妥协,最好的方法是在你的业务代码里就写好ctx.date = new Date().getDate()传给模板。

至于为什么要从模板中抽离业务逻辑,好处有

  • 强迫解耦:所有显示的消息必须完全拼好传给模板。无论是模板还是逻辑都可以轻松地大规模重构而不互相影响
  • 语言无关性:因为几乎没有逻辑,多数此类模板引擎都有或很容易在不同的语言中实现,给一套模板在不同语言中运行提供了可能性

当然坏处就是让业务代码变得有些婆婆妈妈,模板束手束脚

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文