`
zccst
  • 浏览: 3319182 次
  • 性别: 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,测试(单元测试和整体测试)


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

相关推荐

    前端模板引擎Mustache教程.zip

    2. "Mustache.js模板引擎使用 - 山外人家 - CSDN博客":这篇文章详细介绍了如何在JavaScript项目中集成和使用Mustache.js,包括基本语法和高级特性的应用。 3. "Javascript模板引擎mustache.js详解 - 流云诸葛 - ...

    详解Javascript模板引擎mustache.js

    本文将深入探讨Mustache.js的基本概念、使用方法及其在实际项目中的应用场景。 Mustache.js遵循“逻辑less”的原则,这意味着它只负责数据的插入,而不涉及任何条件判断或循环操作。这种设计使得模板和逻辑分离,...

    mustache-js-examples:如何使用 mustache js 的示例

    `mustache-js-examples` 提供了一系列示例,帮助开发者理解如何在JavaScript中有效地使用`Mustache.js`。 首先,你需要确保已经安装了Node.js和Express.js。Node.js是一个开源、跨平台的JavaScript运行环境,它允许...

    Javascript模版引擎Handlebars.js源文件与示例

    Handlebars.js与其他JavaScript模板引擎如Mustache.js有着类似的语法,但Handlebars提供了更丰富的块助手和更好的扩展性。在实际开发中,Handlebars.js常用于构建复杂的前端应用,尤其是那些需要动态渲染大量数据的...

    Mustache模板语法教程

    本文将深入探讨Mustache的基本语法,以JavaScript应用为例,帮助开发者理解和掌握这一强大的模板引擎。 一、Mustache简介 Mustache的核心理念是“logic-less”,即模板中不包含业务逻辑,仅负责展示数据。这意味着...

    Micromodaljs使用纯JavaScript编写轻量级可配置的模式对话框库

    5. **模板引擎兼容**: 虽然Micromodal.js本身不依赖任何模板引擎,但它可以很好地与Handlebars、Mustache等模板库结合,使开发者能够轻松地动态渲染模态框内的内容。 6. **易用性**: Micromodal.js的使用方法简单...

    前端项目-hogan.js.zip

    2. **模板语法**: Hogan.js支持Mustache的基本语法,如双大括号`{{ }}`用于插入变量,三大括号`{{{ }}}`用于不转义地插入变量,以及部分(Partials)、循环(Loops)、条件(Conditions)等控制结构。 3. **编译和...

    Vue.js interview questions and answers in 2023.docx

    Vue.js 组件是 Vue.js 应用程序的基本构成单位。每个组件都可以包含模板、脚本和样式。组件可以嵌套使用,实现复杂的 UI 布局。 9. Vue.js 模板 Vue.js 模板是组件的视图层,用于描述组件的 UI 结构。模板可以使用...

    Backbone.js的Hello World程序实例.docx

    总结来说,这个Backbone.js的Hello World实例展示了如何利用Backbone的核心组件(Model、View、Controller)与后端进行通信,以及如何使用模板引擎(Mustache)动态地展示数据。它是一个基本的单页应用(SPA)结构,...

    Vue.JS项目源码学习笔记PDF版+源码地址.zip

    1. **基础概念**:介绍Vue.js的基本结构,如如何创建实例、声明属性和方法、以及使用模板语法。 2. **数据绑定**:讲解Vue.js的双向数据绑定原理,包括Mustache语法、v-model指令和计算属性的使用。 3. **指令系统**...

    vue2技术参考手册pdf高清

    在 Vue.js 技术参考手册中,目录介绍了 Vue.js 的基本概念和组成部分,包括 Vue 是什么、ViewModel 是什么、View 是什么、Model 是什么、Directives 是什么、Mustache Bindings 是什么、Filters 是什么、Components ...

    JointJs.zip

    6. **模板和自定义**:JointJS允许开发者使用Mustache或Handlebars模板来自定义图形的外观,同时也支持通过继承和扩展来创建自己的图形和连接线类型。 7. **序列化与反序列化**:JointJS能够将图对象序列化为JSON...

    Vue01. Vue.js MVVM 基础.pdf_前端学习资料

    - **模板语法与绑定**:Vue.js 的模板语法允许使用Mustache语法({{ }})进行文本绑定,还可以使用v-bind和v-on指令绑定元素属性和事件。 - **过滤器 Filter**:过滤器用于对数据进行转换,如`{{ message | ...

    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 ( '...

    JavaScript的mustache模板引擎的一个极其快速和小的子实现

    在给定的标题"JavaScript的mustache模板引擎的一个极其快速和小的子实现"中,我们可以推断这里提到的是一个轻量级的、高效的Mustache实现,可能是针对特定场景进行了优化,例如可能去除了某些非必要的功能,以达到更...

    chat-app:使用node.js + socket.io构建的聊天网络应用。 受Slack启发的设计

    使用HTML、CSS和JavaScript(jQuery+Mustache.js)创建用户界面。Mustache.js是一个无依赖的模板库,可以方便地渲染动态数据。jQuery用于简化DOM操作和事件处理。在前端,当用户输入消息并点击发送按钮时,通过...

    Backbone.js的Hello World程序实例

    整个Hello World程序实例演示了Backbone.js的最小实现方式,让开发者能够快速理解Backbone.js核心组件如何协同工作以及如何使用Backbone.js构建基本的单页应用。在这个实例中,使用了Mustache作为模板引擎,但在实际...

    jQuery百度搜索自动补全插件.zip

    4. **自定义模板**:typeahead.js允许你定制补全结果的展示样式,可以使用Mustache或Handlebars等模板引擎编写模板,以控制每条建议的HTML结构。 5. **监听事件**:可以监听typeahead.js的事件,如`open`(补全列表...

    实例解析Vue.js下载方式及基本概念

    Vue.js使用Mustache语法(双大括号{{ }})进行文本插值,这是数据绑定最常见的形式。除了文本插值,Vue.js模板语法还支持表达式,表达式的结果会被解析成字符串并渲染出来。Vue.js的指令(Directives)是带有“v-”...

    微信小程序 1111111111111111111111111

    1. 数据绑定:小程序使用 WXML 模板来实现数据绑定,而 Vue.js 使用 Mustache 语法。 2. 列表渲染:小程序使用 wx:for 指令来实现列表渲染,而 Vue.js 使用 v-for 指令。 3. 显示与隐藏元素:小程序使用 wx-if 和 ...

Global site tag (gtag.js) - Google Analytics