mustache.js使用基本(三)
作者:zccst
本节要点是子模块(partials)和分隔符(delimiter)等
1,子模块(partials)
/*
{{>partials}}以>开始表示子模块,如{{> address}}; 当结构比较复杂时,我们可以使用该语法将复杂的结构拆分成几个小的子模块,例如:
*/ var data = {
"company": "Apple",
"address": {
"street": "1 Infinite Loop Cupertino</br>",
"city": "California ",
"state": "CA ",
"zip": "95014 "
},
"product": ["Macbook ","iPhone ","iPod ","iPad "]
} //主模板
var tpl = "<h1>{{company}}</h1> <ul>{{>address}}</ul>"; //子模板写法1:定义一个子模块对象。里面放子模板。
var partials = {
address: "{{#address}}<li>{{street}}</li><li>{{city}}</li><li>{{state}}</li><li>{{zip}}</li>{{/address}}"
}
var html = Mustache.render(tpl, data, partials); //子模板写法2:直接写在第三个参数里
var html = Mustache.render(tpl, data, {address: "{{#address}}<li>{{street}}</li><li>{{city}}</li><li>{{state}}</li><li>{{zip}}</li>{{/address}}"});
document.getElementById("target").innerHTML = html;
再举一例:
var view = {
    name: "Joe",
    winnings: {
        value: 1000
    }
};
var template = "Welcome, {{name}}! {{#winnings}} {{>winnings}}{{/winnings}} "
var partials = {
    winnings: "You just won ${{value}}"
};
var output = Mustache.to_html(template, view, partials);
document.getElementById("target").innerHTML = output;
输出结果是:
Welcome, Joe! You just won $1000
2,分隔符(delimiter)
(1)写法1:默认的标签风格
* {{ default_tags }}
{{=<% %>=}}
(2)写法2:使用ERB风格
* <% erb_style_tags %>
<%={{ }}=%>
(3)写法3:
* {{ default_tags_again }}
3,预解析或缓存parse
mustache.js会在第一次读模板时缓存,第二次可加快速度,如果需要
Mustache.pars(template);
Mustache.render(template, view);
4,对应的插件
有jQuery,MooTools,Dojo,YUI,qooxdoo。可以使用Rake来built。
5,测试(单元测试和整体测试)
mustache.js使用基本(三)的更多相关文章
- Javascript模板引擎mustache.js详解
		
mustache.js是一个简单强大的Javascript模板引擎,使用它可以简化在js代码中的html编写,压缩后只有9KB,非常值得在项目中使用.本文总结它的使用方法和一些使用心得,内容不算很高深 ...
 - Mustache.js前端模板引擎源码解读
		
mustache是一个很轻的前端模板引擎,因为之前接手的项目用了这个模板引擎,自己就也继续用了一会觉得还不错,最近项目相对没那么忙,于是就抽了点时间看了一下这个的源码.源码很少,也就只有六百多行,所以 ...
 - 模板引擎mustache.js
		
Javascript模板引擎mustache.js详解 阅读目录 1. 从一个简单真实的需求讲起 2. mustache的用法 3. mustache的思想 4. {{prop}}标签 5. {{ ...
 - vue系列---Mustache.js模板引擎介绍及源码解析(十)
		
mustache.js(3.0.0版本) 是一个javascript前端模板引擎.官方文档(https://github.com/janl/mustache.js) 根据官方介绍:Mustache可以 ...
 - 探究Javascript模板引擎mustache.js使用方法
		
这篇文章主要为大家介绍了Javascript模板引擎mustache.js使用方法,mustache.js是一个简单强大的Javascript模板引擎,使用它可以简化在js代码中的html编写,压缩后 ...
 - mustache.js
		
mustache.js 是一个 Mustache 模板系统的 JavaScript 实现. Mustache 模板语法的逻辑比较简单.它用于HTML,配置文件,源代码等.它的工作方式是通过通过以哈希值 ...
 - 使用mustache.js 模板引擎输出html
		
看了https://mustache.github.io/你就知道mustache是非常强大的模板引擎,支持多种语言,下面是个简单入门例子: MVC Model public class Studen ...
 - 【高德地图API】从零开始学高德JS API(三)覆盖物——标注|折线|多边形|信息窗口|聚合marker|麻点图|图片覆盖物
		
原文:[高德地图API]从零开始学高德JS API(三)覆盖物——标注|折线|多边形|信息窗口|聚合marker|麻点图|图片覆盖物 摘要:覆盖物,是一张地图的灵魂.有覆盖物的地图,才是完整的地图.在 ...
 - mustache.js基本使用(一)
		
作者:zccst 模板已是第二次接触,第一次使用模板记得是在十分系统里渲染页面时使用,当时已做到熟练使用,但实际上仍不知道原因. 再次学习模板已不是从0开始,所以还算顺手,但毕竟还只限于使用,今天继续 ...
 
随机推荐
- AI 人工智能 探索 (四)
			
在写之前,先对昨天寻路插件再做一些补充,因为该插件不是很完善,所以当我发现有不能满足需求的时候,就会试图更改源代码,或增加接口来符合我的需求. 昨天补充了一条是 自身转向代码,今天补充另外一条,是及时 ...
 - js对象大总结2016/4/19
			
本地对象(非静态对象) 常用的对象Object,Funcion,Array,Boolen,String,Boolen,Number,Date,RegEXP,Error;new一下就能用的 内置对象:( ...
 - jQuery 数据滚动(上下)
			
setInterval(function() { jq('.sjbg02 li:first').animate({ 'height': '0', 'opacity': '0' }, 'slow', f ...
 - 最简单的epoll的使用范例 : 监听 标准输入 ,并将数据回显到终端
			
#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/epoll.h> # ...
 - 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
			
前述: 在写这篇笔记之前,对笔记中的设计模式进行介绍: 本篇笔记中将要使用到的设计模式是:装饰(包装)设计模式 (1)装饰(包装)设计模式口诀: ...
 - 把Wordpress集成到zen-cart里方法 各种修改 经典机制
			
作者: 闻庭牛 | 分类: zen cart插件精解 | 浏览: 4 | 评论: 暂时没有评论 如果你的Zen-cart需要一个Blog来发布一些你的最新动态,可以试试Wordpress,并且用WOZ ...
 - HDU 5889 (最短路+网络流)
			
Barricade Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
 - hdu_4467_Graph(莫队算法思想)
			
题目连接:hdu_4467_Graph 题意:给你n个点,m条边,每条边有一个权值,有两个操作,一个是修改单点的颜色,一个是询问边的两个端点都为指定颜色的权值和 题解:这题如果暴力的话,就是维护3个a ...
 - 剑指offer之有序二维数组查找
			
大多数人注意到元素是行列有序的,会马上想到对每行(或列)进行二分查找,每行(或列)需要logN时间,N行(或列)共需要NlogN时间,很容易写出如下代码 1 2 3 4 5 6 7 8 9 10 11 ...
 - cakephp 的事件系统(Getting to grips with CakePHP’s events system), 基于观察者模式
			
This article was written about CakePHP 2.x and has been untested with CakePHP 3.x CakePHP seems to g ...