给自己提个醒,渲染模版引擎handlebars已经足够好用了,不要再到处乱看浪费时间了。
2024-09-08 19:19:57
<html>
<body onload="renderHello()">
<div id="target">Loading...</div>
<script id="template" type="x-tmpl-mustache">
Handlebars <b>{{doesWhat}}</b> <br>
{{loudHelper doesWhat}} <br>
{{{timeHelper time}}} <br>
{{time}} <br>
{{{listHelper names}}} <br>
{{#listHelper names}}
<b>{{firstName}}</b>
{{/listHelper}}
</script>
<br>
<br>
<script src="https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.min.js"></script>
<script>
function toDateString(values,field){
if (!field || !values){
return "";
}
field = field.trim();
var value = values[field];
if (!value){
return "";
}
var d = new Date(value);
return d.toDateString();
}
var tableColumns = [
{
title:"xxNo",
cell:"Handlebars: <div data-click='emit:aaa:aaa' href='/sss/sdsds'>xxNo: {{xxNo}}</div><div>yyNo: {{yyNo}}</div><div>日期: {{{timeHelper time}}}</div>",
}
];
function renderHello() {
var template = document.getElementById('template').innerHTML;
var compiled = Handlebars.compile(template);
Handlebars.registerHelper('loudHelper', function (aString) {
return aString.toUpperCase()
})
Handlebars.registerHelper('timeHelper', function (t) {
return new Date(t).toDateString();
})
Handlebars.registerHelper("listHelper", function(items, options) {
const itemsAsHtml = items.map(item => {
let s = item;
if (typeof options.fn === "function"){
const s1 = options.fn(item).trim();
if (s1.length > 0){
s = s1;
}
}
return "<li>" + s + "</li>"
});
return "<ul>\n" + itemsAsHtml.join("\n") + "\n</ul>";
});
document.getElementById('target').innerHTML = compiled({
doesWhat: "rocks!",
time: Date.now(),
names: [
"bbb",
{firstName:'fff'}
]
});
}
</script>
</body>
</html>
最新文章
- golang 文件操作
- iScroll-5 API 中文版
- 前端科普文—为什么<;!DOCTYPE>; 不可或缺
- WINDBUG常用命令
- C/C++多种方法获取文件大小(转)
- Nodejs学习笔记(十三)— PM2
- asp.net如何确定是哪些控件验证失败
- TP复习8
- zedboard之GPIO驱动(从FPGA一直到LINUX应用)
- Android开发手记(28) Handler和Looper
- 反射,得到Type引用的三种方式
- python cookbook第三版学习笔记十三:类和对象(三)描述器
- dojo中引入FusionCharts柱状图报错
- 小甲鱼Python第九讲课后习题--010列表
- range和xrange
- CSS实现鼠标经过网页图标弹出微信二维码
- 【最详细最完整】在Linux 下如何打包免安装的QT程序?
- Mint-ui 中 Popup 作为组件引入,控制弹出框的显示与隐藏遇到的问题。
- PHP 审计
- mysql 查询近几天的结果