<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>

最新文章

  1. golang 文件操作
  2. iScroll-5 API 中文版
  3. 前端科普文—为什么&lt;!DOCTYPE&gt; 不可或缺
  4. WINDBUG常用命令
  5. C/C++多种方法获取文件大小(转)
  6. Nodejs学习笔记(十三)— PM2
  7. asp.net如何确定是哪些控件验证失败
  8. TP复习8
  9. zedboard之GPIO驱动(从FPGA一直到LINUX应用)
  10. Android开发手记(28) Handler和Looper
  11. 反射,得到Type引用的三种方式
  12. python cookbook第三版学习笔记十三:类和对象(三)描述器
  13. dojo中引入FusionCharts柱状图报错
  14. 小甲鱼Python第九讲课后习题--010列表
  15. range和xrange
  16. CSS实现鼠标经过网页图标弹出微信二维码
  17. 【最详细最完整】在Linux 下如何打包免安装的QT程序?
  18. Mint-ui 中 Popup 作为组件引入,控制弹出框的显示与隐藏遇到的问题。
  19. PHP 审计
  20. mysql 查询近几天的结果

热门文章

  1. 简单添加table线条
  2. Prometheus插件安装(mysql_exporter)
  3. 04#Web 实战:Gitee 贡献图
  4. 开源分布式任务调度系统就选:DolphinScheduler
  5. 转码服务serverless探索
  6. 跟女朋友介绍十个常用的 Python 内置函数,她夸了我一整天
  7. python的常见问题解决
  8. redis RDB和AOF
  9. DOM04~
  10. VScode中文乱码问题