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 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.{{!  }}注釋

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM