`
zccst
  • 浏览: 3291789 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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.parse(template);
//跳过解析模板的阶段,直接渲染
Mustache.render(template, view);





4,对应的插件

有jQuery,MooTools,Dojo,YUI,qooxdoo。可以使用Rake来built。



5,测试(单元测试和整体测试)


如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
评论

相关推荐

    grunt-mustache-hogan-html:使用Hogan.js从Mustache模板构建可工作HTML click-dummy的艰巨任务-使用基本布局,页面和局部页面生成HTML页面

    使用Hogan.js编译Mustache。入门这是的插件。 使用以下命令安装此插件: npm install grunt-mustache-hogan-html --save-dev 插件安装完成后,可以在您的Gruntfile.js启用它,如下所示: grunt . loadNpmTasks ( '...

    gulp-minstache:使用基本 Mustache 库编译模板的 Gulp 插件

    安装 $ npm install --save-dev gulp-minstache用法src/greeting.html &lt; h1&gt; Hello {{name}} &lt;/ h1&gt;gulpfile.js var gulp = require ( 'gulp' ) ;var template = require ( 'gulp-minstache' ) ;gulp . task ( '...

    fuzz:恰好包装了Slack的示例ClojureScript项目

    Mustache.js 核心异步 Om /React clj-http 服务器发送事件 用法 启动无花果轮: rlwrap lein figwheel 重复,做 (dev) (reset) 访问端口8080。 通过环境公开:slack-token以运行Slack功能。 从REPL运行(send...

    handlebars.js

    用法通常,Handlebars.js模板的语法是Mustache模板的超集。 有关基本语法,请查看。 有了模板后,请使用Handlebars.compile方法将模板编译为函数。 生成的函数采用上下文参数,该参数将用于呈现模板。 var source = ...

    zen:使用 ZEN-serverrequestproxy 的示例

    您可以在其文档中查看每个模块的基本架构,但对于此示例,文件和目录架构将如下所示: . ├── api ├── certificates /* Los certificados para HTTPS */ ├── environment ├── static ├── test ├─...

    schwartzman:Moustache-> Webpack的ReactJS加载器

    另外,Mustache非常简单和基本。 如此简单,与编写适用于Python / Perl / PHP / Pascal / P的JSX解析器相比,编写Mustache-to-JS编译器要容易得多 安装 $ npm install --save-dev schwartzman 并添加到您的webpack...

    atlas:个人看板GTD分析

    2小时看起来我可能不得不从 mustache.js 中更改我的 html 模板解决方案。 我越来越觉得它不够强大,无法完成我想做的事情。 使变更监控工作 0.5h 添加一些箭头以使卡片从一列移动到另一列 1小时 添加拖放支持 需要...

    gulp-js-templates:构建脚本导入模板

    将模板文件添加到javascript对象。 安装 npm install gulp-js-templates 基本用法 var jtpl = require ( 'gulp-js-templates' ) ; gulp . task ( 'templates' , function ( ) { return gulp . src ( './templates/*...

    开源移动CMS框架墨颀移动CMS.zip

    墨颀CMS是一个开源的移动Web ... 压缩js脚本(Minify Javascript) 部署前将HTML中的数据用configure.json中替换 选定后台Server(框架未定) 标签:墨颀移动CMS

    雪纳瑞犬:使用类似于Mustage或Handlebars的模板,快速而小巧的模板渲染引擎

    {{schnauzer.js}}-(几乎)带有JavaScript的无逻辑模板 ... 您可以在任何可以使用JavaScript的地方使用schnauzer.js呈现模板。 这包括Web浏览器,诸如和视图之类的服务器端环境。 schnauzer.js附带了对模块API和A

    Reading--notes

    文字和基本JavaScript 基本的javascript和循环 链接与功能 色彩和图像 了解问题域 领域建模 布局 形式 错误处理与调试 图片 HTML Element&Chart.js的文档 本地存储 CSS转换 Google学习了如何建立完美...

    zetam:Zetam - Express 中间件

    要开始一个基本项目,请使用 Yeoman 生成器: : # install yeoman, zetam generator and gulp globally npm install -g yo generator-zetam gulp # init a new project yo zetam # run gulp gulp 页面和组件 页面...

    Vue的全局过滤器和私有过滤器的实现

    过滤器可以用在两个地方:mustache插值表达式 和 v-bind表达式 过滤器应被添加在JavaScript表达式的尾部 由“管道”符指示(管道符就是一个竖杠:|) 一、全局过滤器 全局过滤器调用时的基本格式: 通过管道符[|]来...

    积分java源码-Dentist:Spring(MVC+安全)+Hibernate4

    Js  IDE : Eclipse Mars  语言:JAVA 7  服务器:Tomcat 7  版本控制:GitHub  构建工具:Maven  数据库:MySQL  主机:Godaddy VPS 注意:请参阅 maven pom.xml 以了解我在项目中使用的库的确切版本...

    积分java源码-KangDental:牙科网站

    Js  IDE : Eclipse Mars  语言:JAVA 7  服务器:Tomcat 7  版本控制:GitHub  构建工具:Maven  数据库:MySQL  主机:Godaddy VPS 注意:请参阅 maven pom.xml 以了解我在项目中使用的库的确切版本...

    react-boston-ssr:React波士顿聚会 21815

    基本的服务器端渲染。 用于基准测试。 3 - mustache-ssr(节点) 4 - mustache-ssr(去) Mustache 中的 SSR 作为对比。 可以使用共享模板创建“同构”工作流。 用于基准测试。 5 - React-ssr-prod 使用一些...

    kh-demo-mobile:该网络应用程序是由Framework7制作的,是一个面向投资者的在线帐户开设系统

    基于 Mustache 的 分支 项目简介 为了使开发快速高效,使用了以下辅助工具(作为前端,应该不会陌生): 样式预编译器: JS 模块依赖管理: 自动化构建工具: 应用框架: 源码结构 ./src |-- api # =&gt; 模拟请求数据 ...

    gogoAST:最简单的工具,可以解析ast上的转换生成代码

    安装node包安装 npm install gogoast浏览器执行commonjs丨gogoast.js为什么你需要用gogoAST?大量减少代码量-如果您需要使用AST对代码进行升级,改造,分析,快用gogoAST帮你扩展繁琐冗余的代码,专注于你的核心逻辑...

    matlab改变代码字体-indrek-ruubel-ignite.github.io:indrek-ruubel-ignite.github

    兼容的JS模板引擎(Mustache,Underscore,Hogan,Handlebars,Swig,Markup或EJS) 兼容CSS框架样式(引导2/3,基础3/4/5或jqueryui) 兼容的图标库(引导程序2/3字形,基础图标2/3,jqueryui或超酷的3/4字体) ...

    mikado:Mikado是Web上用于构建用户界面的最快的模板库

    基于生活水平的现代模板引擎。 超轻量级,出色的性能,无依赖性。 到目前为止,渲染对应用程序性能的影响最大。 Mikado将模板性能提升到一个并为您提供开箱即用的有键,...Mikado基于生活水平,并使用类似的模板表示法

Global site tag (gtag.js) - Google Analytics