mustache.js的使用说明

看了Mustache的github,学学其中的语法,做个笔记

1.简单的变量替换:{{name}}

var data = { "name": "Willy" };
Mustache.render("{{name}} is awesome.",data);

返回结果 Willy is awesome.

2.如果变量含有html的代码的,例如:<br>、<tr>等等而不想转义可以在用{{&name}}

var data = {
            "name" : "<br>Willy<br>"
        };
        var output = Mustache.render("{{&name}} is awesome.", data);
        console.log(output);

结果:<br>Willy<br> is awesome.

去掉"&"的结果是转义为:&lt;br&gt;Willy&lt;br&gt; is awesome.(默认将"<"和">"转义)

3.如果是对象,还能解释其属性

 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

4.{{#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!。

5.迭代

 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>

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

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

输出:* Athos

* Aramis

* Porthos

* D‘Artagnan

7.迭代输出的还可以是一个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);

输出: *John Lennon

*Paul McCartney

*George Harrison

*Ringo Starr

8:方法里面可以再执行变量中的表达式

 var data = {
             "name" : "{{age}}" + "Tater",
             "bold" : function() {
                 return function(text, render) {
                     console.log(text);
                     return "<b>" + render(text) + "</b>";
                 };
             },
             "age" : 18
         };
         var output = Mustache.render("{{#bold}}Hi {{name}}.{{/bold}}", data);
         console.log(output);

输出结果:

Hi {{age}}Tater.

<b>Hi 18Tater.</b>

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

10.{{!  }}注释

时间: 2024-08-28 16:32:06

mustache.js的使用说明的相关文章

使用mustache.js 模板引擎输出html

MVC Model public class StudentModel { [Key] public int StuId { get; set; } [Display(Name = "姓名")] [StringLength(50)] [Required(ErrorMessage = "姓名必填")] public string StuName { get; set; } [StringLength(250)] [Display(Name = "住址&quo

mustache.js使用基本(三)

作者:zccst 本节要点是子模块(partials)和分隔符(delimiter)等 1,子模块(partials) /* {{>partials}}以>开始表示子模块,如{{> address}}: 当结构比较复杂时,我们可以使用该语法将复杂的结构拆分成几个小的子模块,例如: */ var data = { "company": "Apple", "address": { "street": "

mustache.js基本使用(一)

作者:zccst 模板已是第二次接触,第一次使用模板记得是在十分系统里渲染页面时使用,当时已做到熟练使用,但实际上仍不知道原因. 再次学习模板已不是从0开始,所以还算顺手,但毕竟还只限于使用,今天继续学习,希望这次能够更深入一些. 这次学习的是mustache.js,他的理念是让模板尽量保持简单,甚至连基本的逻辑判断都不需要用. 本文基本要点: 1,基本用法 2, mustache.js基本使用(一),布布扣,bubuko.com

Javascript模板引擎mustache.js详解

mustache.js是一个简单强大的Javascript模板引擎,使用它可以简化在js代码中的html编写,压缩后只有9KB,非常值得在项目中使用.本文总结它的使用方法和一些使用心得,内容不算很高深,纯粹是入门内容,看看即可.不过要是你还没有用过此类的javascript引擎库,那么本文还是值得你一读的,相信在你了解完它强大的功能和简单用法之后,一定会迫不及待地将之用于你的工作当中. 1. 从一个简单真实的需求讲起 目前公司做了一个统一的开发平台,后台封装了MVC的接口和数据增删改查的接口,前

Mustache.js前端模板引擎初识

目前在看一个项目,在一遍遍撸代码的时候,发现代码里调用了一个Mustache.render()方法. 经过百度后,发现Mustache.js是一套轻量级模板引擎. 所以现在就要仔细学习一下,它是如何工作的. 一般来说mustache在js中的使用方法都是如下: var template = $('#template').html(); Mustache.parse(template);   // optional, speeds up future uses var rendered = Mus

Mustache.js语法

看了Mustache的github,学学此中的语法,做个笔记 1.简单的变量调换:{{name}} 1 var data = { "name": "Willy" }; 2 Mustache.render("{{name}} is awesome.",data); 返回成果 Willy is awesome. 2.若是变量含有html的代码的,比如:<br>.<tr>等等而不想转义能够在用{{&name}} 1 va

MVC客户端使用 Mustache.js把json数据填充到模版中

使用Mustache的好处是:可以把一些反复用到的html部分定义成Mustache模版,以便多次使用.使用Mustache的大致步骤是: →从后台拿到json数据 →获取前台页面预先定义好Mustache模版(占位符必须和从后台传来的的字段或属性名一致) →遍历每行的json数据,使用Mustache.render(template, row)方法把json数据填充到对应的占位符,得到html内容 →把html内容追加到页面的某个位置 显示一个足球俱乐部的下拉框: 当点击下拉框,显示该俱乐部的

Mustache.js前端模板引擎源码解读【二】

上一篇解读完解析器的代码,这一篇就来解读一下渲染器. 在之前的解读中,解读了parseTemplate如何将模板代码解析为树形结构的tokens数组,按照平时写mustache的习惯,用完parse后,就是直接用 xx.innerHTML = Mustache.render(template , obj),因为此前会先调用parse解析,解析的时候会将解析结果缓存起来,所以当调用render的时候,就会先读缓存,如果缓存里没有相关解析数据,再调用一下parse进行解析. Writer.proto

Mustache.js前端渲染模板

引自:http://blog.csdn.net/xuemoyao/article/details/17896203 Mustache 使用心得总结 前言: 之前的一个项目里面就有用到这个前台的渲染模版,当时挺忙的也没时间抽空总结一下,刚好上周项目里又用到这个轻量型的渲染模版,真心感觉很好用,因此就总结一下使用心得,算是一个入门级别的指引吧. 1.  Mustache 概述 Mustache是基于JavaScript实现的模版引擎,类似于JQuery Template,但是这个模版更加的轻量级,语