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. 林轩田机器学习基石课程学习笔记1 -- The Learning Problem
  2. linux history存放位置,Linux中history历史命令使用方法详解
  3. 他入狱10年自学数学,如今凭借手稿发了篇论文,被同行评价“足以开辟数论新领域”...
  4. Java设计模式(二十):中介者设计模式
  5. 一文搞定Linux shell脚本编程( 史上最全汇总 )
  6. sql range 范围内查询
  7. mongodb系列01--基础篇
  8. [渝粤教育] 中国地质大学 大学英语(1) 复习题
  9. 【转】CT层厚、层间距、层间隔的概念是什么,MRI的层厚、层间距、曾间隔是什么
  10. mysql还是mdb2_mysql两种表存储结构myisam和innodb的性能比较测试
  11. ASP.NET HyperLink控件NavigateUrl中用到DataBinder.Eval时
  12. WPF窗口允许通过拖放进行切换
  13. dp----最少硬币问题
  14. Python爬虫QQ空间
  15. 宇视交换机vlan路由配置指导
  16. Binarized Neural Network : BNN二值神经网络代码实例
  17. 计算机考试试题及答案
  18. 学习日记5-C语言函数的应用
  19. 程序员的十种搞笑级别
  20. 《机器学习实战》—— 决策树

热门文章

  1. Android进程管理,Android开发者跳槽指南面试必备
  2. 语音智能是利用计算机,什么是虚拟现实技术,语音技术,智能技术?
  3. SpringCloud - Spring Cloud Netflix 之 Hystrix ;turbine(十)
  4. Android混淆配置
  5. android linearlayout 代码,Android如何从代码向另一个LinearLayout添加Linearlayout
  6. AntDB入选《爱分析:2022数据智能厂商全景报告》
  7. [记录]修改el-table边框颜色
  8. AsyncTask、HandlerThread、IntentSerivce源码解析
  9. VS2008卸载导致的Office不能正常使用
  10. 雷达图 和 K线图(蜡烛图),OHLC线图