Mustache模板学习笔记

  • 1 初体验
    • 1.1 还可以对象形式做数据源
    • 1.2 {{#param}}这个标签很强大,有if判断、forEach的功能。
      • 1.2.1 如果迭代的是数组,还可以用{{.}}来替代每个元素
    • 1.3 迭代输出的还可以是一个function返回的结果,function可以读取当前变量的上下文来获取其他属性执行其他操作

1 初体验

首先先定义一个type="x-tmpl-mustache"的模板脚本并给与一个id

<script id="paginateTemplate" type="x-tmpl-mustache"><p> Hello,{{name}}</p>
</script>

其次再在html页面中定义一个div容器,并给一个id名

<div id="context"></div>

最后再在</body>前写javascript脚本做模板渲染

<script type="text/javascript">var data = { "phone": "iphone" }var Template = $('#paginateTemplate').html();var rendered = Mustache.render(Template,data);$('#context').html(rendered);
</script>

1.1 还可以对象形式做数据源

var data = {"name" : {"first" : "Chen","last" : "Jackson"},"age" : 18
};
var output = Mustache.render("name:{{name.first}} {{name.last}},age:{{age}}", data);
console.log(output);

结果:name:Chen Jackson,age:18

1.2 {{#param}}这个标签很强大,有if判断、forEach的功能。

var data = {"nothin":true
};
var output = Mustache.render(
"Shown.{{#nothin}}Never shown!{{/nothin}}", data);
console.log(output);

结果:如果nothin是空或者null,或者是false都会输出Shown.相反则是Shown.Never shown!。

下面是迭代功能的使用:

var data = {"stooges" : [ {"name" : "Moe"}, {"name" : "Larry"}, {"name" : "Curly"} ]
};
var output = Mustache.render("{{#stooges}}<b>{{name}}</b>{{/stooges}}",data);
console.log(output);

输出:<b>Moe</b>
<b>Larry</b>
<b>Curly</b>

1.2.1 如果迭代的是数组,还可以用{{.}}来替代每个元素

var data = {"musketeers" : [ "Athos", "Aramis", "Porthos", "D'Artagnan" ]
};
var output = Mustache.render("{{#musketeers}}* {{&.}}{{/musketeers}}",data);
console.log(output);

输出:
* Athos
* Aramis
* Porthos
* D’Artagnan

1.3 迭代输出的还可以是一个function返回的结果,function可以读取当前变量的上下文来获取其他属性执行其他操作

var data = {"beatles" : [ {"firstName" : "John","lastName" : "Lennon"}, {"firstName" : "Paul","lastName" : "McCartney"}, {"firstName" : "George","lastName" : "Harrison"}, {"firstName" : "Ringo","lastName" : "Starr"} ],"name" : function() {return this.firstName + " " + this.lastName;}};var output = Mustache.render("{{#beatles}} *{{name}}{{/beatles}}", data);console.log(output);

9.{{^}}与{{#}}相反,如果变量是null、undefined、 false、和空数组讲输出结果

10.{{! }}注释

Mustache模板学习笔记相关推荐

  1. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的"章节7:创建TPL自定义模板",做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. ...

  2. C++模板学习笔记——模板实参

    对于函数模板,编译器通过隐式推断模板实参.其中,从函数实参来确定模板实参的过程被称为模板实参推断.在模板实参推断过程中,编译器使用函数调用中的实参类型来寻找模板实参,用这些模板实参生成的函数版本与给定 ...

  3. “模板”学习笔记(7)-----数组模板+对象数组举例

    我们可以定义一个数组模板,并且利用该模板声明其数组成员.声明的方式非常简单,主需要一下两步: template<class ElementType,int n>; ElementType ...

  4. C++ 函数模板和排序的函数模板——学习笔记

    我们在使用重载函数时,只是使用了函数名,而函数体还是得分别定义,在C++中函数模板为我们很好的解决了这个问题. 1.函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函 ...

  5. JQuery-No.02 jTemplates模板学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> 1.jTemplates工作方式 1)setTemplateElement:指定可处理的模板对象 2)processTempl ...

  6. ACM模板 | 学习笔记 树相关

    持续更新中qwq 咕咕咕 此次update是在我原先自己的博客园博客的基础上进行更新的(隔了两年该忘的不该忘的都忘完了qwq),顺便整理一下我的acm模板QAQ (我保证2021.3.1开学之前搞完! ...

  7. FLASK模板学习笔记

    默认配置: template_folder='templates' -----  模板的默认目录 render_template()   --------   (x)html自动转义 render_t ...

  8. ACM模板 | 学习笔记 数学相关

    正在整理中qwq 欧拉函数 求欧拉函数的个数(phi(n)) phi(n)=n∗(1−1p1)∗...∗(1−1pk)phi(n) = n * (1 - \frac{1}{p_1})*...*(1-\ ...

  9. [学习笔记]半平面交

    一个直线把平面分成两部分,就是两个半平面 处理这两个平面的交的信息,就是半平面交 推荐: 计算几何之半平面交算法模板及应用 bzoj 2618 半平面交模板+学习笔记 [总结]半平面交 可以用于求任意 ...

最新文章

  1. 【蚁群路径规划】基于MATLAB的蚁群算法的二维路径规划
  2. win10安装Navicat 12 for MySQL
  3. [故障引起的故事]URL中带加号(+)的处理
  4. Java对战.NET,战争与和平的游戏
  5. labview嵌入c代码_Raspberry pi 4B+LabVIEW_2020amp;NXG部署WebApp
  6. php 账号与密码比对,Php - 将密码与root密码进行比较
  7. VS2010 使用GDI+创建图片水印的MFC程序
  8. OS- -文件系统(三)
  9. 如何用python编程制作出表格_使用Python轻松制作漂亮的表格
  10. 一周学C#第五天——命名空间
  11. Echarts数据可视化grid直角坐标系(xAxis、yAxis)
  12. 转:Java中abstract和interface的区别
  13. IPv6在3G网的应用(转)
  14. 中国数据中心改造市场趋势报告、技术动态创新及市场预测
  15. QQ号1941663132是一个诈骗
  16. OSW工具-Oracle的OS watcher
  17. oracle rebuild online,rebuild online 请慎用
  18. [树莓派] 轻松制作一个遥控小车(C++,Socket)
  19. 【开学季】30款高质量的自学网站,总有一款适合你
  20. Java基础:IO 流中的 flush

热门文章

  1. 认识计算机系统学情分析,小学信息技术《认识计算机》说课稿——获奖说课稿...
  2. 与百年经典奢侈品牌万宝龙跨界合作,“劲黑”系列主题下午茶来了!
  3. php文本转语音mp3api源代码,小说文本转音频(百度AI语音合成接口)
  4. 社交电商平台是什么?社区团购怎么做?运营经验分享
  5. 送别 2019,期待 2020!
  6. msf对小米11进行安全渗透
  7. 笔记本怎么建立局域网
  8. 「北京当代·艺术博览会 — 重聚」 共聚北京主场 开启北京时间
  9. 微信发送视频消息php,vbot微信聊天机器人微信聊天消息详解(5):视频消息
  10. 帝国cmssitemap.php,帝国CMS如何自动生成sitemap.xml网站地图