文章出處

微信小程序中用到了大量Mustache語法,特發此文學習一下

 

1.簡單的變量調換:{{name}}

 


1 var data = { "name": "Willy" };

2 Mustache.render("{{name}} is awesome.",data);

 

返回成果 Willy is awesome.

 

2.若是變量含有html的代碼的,例如:<br>、<tr>等等而不想轉義可以在用{{&name}}

 


1 var data = {

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

 

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

 

去掉"&"的成果是轉義為:&lt;br&gt;Willy&lt;br&gt; is awesome.(默認將"<"和">"轉義)

 

3.若是是對象,還能申明其屬性

 


 1 var data = {

2 "name" : {
3 "first" : "Chen",
4 "last" : "Jackson"
5 },
6 "age" : 18
7 };
8 var output = Mustache.render(
9 "name:{{name.first}} {{name.last}},age:{{age}}", data);
10 console.log(output);

 

成果:name:Chen Jackson,age:18

 

4.{{#param}}這個標簽很強大,有if斷定、forEach的功能。

 

 

 


1 var data = {

2 "nothin":true
3 };
4 var output = Mustache.render(
5 "Shown.{{#nothin}}Never shown!{{/nothin}}", data);
6 console.log(output);

 

若是nothin是空或者null,或者是false都邑輸出Shown.相反則是Shown.Never shown!。

 

5.迭代

 


 1 var data = {

2 "stooges" : [ {
3 "name" : "Moe"
4 }, {
5 "name" : "Larry"
6 }, {
7 "name" : "Curly"
8 } ]
9 };
10 var output = Mustache.render("{{#stooges}}<b>{{name}}</b>{{/stooges}}",
11 data);
12 console.log(output);

 

輸出:<b>Moe</b>

 

        <b>Larry</b>

 

        <b>Curly</b>

 

6.若是迭代的是數組,還可以用{{.}}來調換每個元素

 


1 var data = {

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

 

輸出:* Athos

 

        * Aramis

 

        * Porthos

 

        * D""Artagnan

 

7.迭代輸出的還可所以一個function返回的成果,function可以讀取當前變量的高低文來獲取其他屬性履行其他操縱

 


 1 var data = {

2 "beatles" : [ {
3 "firstName" : "John",
4 "lastName" : "Lennon"
5 }, {
6 "firstName" : "Paul",
7 "lastName" : "McCartney"
8 }, {
9 "firstName" : "George",
10 "lastName" : "Harrison"
11 }, {
12 "firstName" : "Ringo",
13 "lastName" : "Starr"
14 } ],
15 "name" : function() {
16 return this.firstName + " " + this.lastName;
17 }
18 };
19 var output = Mustache
20 .render("{{#beatles}} *{{name}}{{/beatles}}", data);
21 console.log(output);

 

輸出: *John Lennon

 

         *Paul McCartney

 

         *George Harrison

 

         *Ringo Starr

 

8:辦法里面可以再履行變量中的表達式

 


 1 var data = {

2 "name" : "{{age}}" + "Tater",
3 "bold" : function() {
4 return function(text, render) {
5 console.log(text);
6 return "<b>" + render(text) + "</b>";
7 };
8 },
9 "age" : 18
10 };
11 var output = Mustache.render("{{#bold}}Hi {{name}}.{{/bold}}", data);
12 console.log(output);

 

輸出成果:

 

Hi {{age}}Tater.

 

<b>Hi 18Tater.</b>

 

9.{{^}}與{{#}}相反,若是變量是null、undefined、 false、和空數組講輸出成果

 

10.{{!  }}注釋

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()