Ruby's Louvre

每天学习一点点算法

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

javascript 模板系统 ejs v7

javascript模板系统 ejs 第七版!

本版本只要是对其易用性进一些修改,去掉两个冗余的功能。

我发现我的模块系统天生就能实现模块套嵌,因此有关子模板导入的两个操作符去掉。

对参数进行多态化,可简单地传入一个字符串来指定目标元素的选择器或目标文件的URL(通过url(http://)来区分)与一个参数对象,也可以像EXT那样传入一个哈希。

使用方法见如下例子:

更新日志

v1
默认界定符为<% %>,当然也可以自定义界定符,只支持当前页面的script元素做模板
http://www.cnblogs.com/rubylouvre/archive/2010/08/10/1796383.html
v2
改进算法提速,比John Resig的 Micro-Templating模板更能应对复杂的模板
http://www.cnblogs.com/rubylouvre/archive/2010/08/22/1805914.html
v3
http://www.cnblogs.com/rubylouvre/archive/2010/08/25/1807789.html
增添了局部模板功能
v4
http://www.cnblogs.com/rubylouvre/archive/2010/08/31/1813122.html
对v3的结构进行优化,支持远程的独立文件做模板
v5
http://www.cnblogs.com/rubylouvre/archive/2010/08/31/1813122.html
尝试新的算法
v6
http://www.cnblogs.com/rubylouvre/archive/2010/10/05/1841933.html
更新默认界定符为<& &>,添加新的操作符<&~,对数据源的第一层属性名添加@前缀
v7
对参数进行多态化,因ejs天生支持模板的相互调用便去除<&:与<&~操作符

参数多态化,四种传参方式

//方式1
dom.ejs("id",{aa:"aaa",bb:"bbb"})
//方式2
dom.ejs("url(http://aaa/tmpl.html)",{aa:"aaa",bb:"bbb"})
//方式3
dom.ejs({
 selector:"id",
 data    : {aa:"aaa",bb:"bbb"}
 });
//方式4
dom.ejs({
 url:"http://aaa/tmpl.html",
 data    : {aa:"aaa",bb:"bbb"}
 })

如果您觉得此文有帮助,可以打赏点钱给我支付宝1669866773@qq.com ,或扫描二维码

posted on   司徒正美  阅读(4599)  评论(7编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示