搜索
javascript - handlebars 模板内简单js语句实现
PHP中文网
PHP中文网 2017-04-10 14:25:13
[JavaScript讨论组]

ejs :

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

jade :

#{new Date().getDate()}

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

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
PHP中文网

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

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号