Mustache 使用心得總結


Mustache 使用心得總結

前言:

之前的一個項目里面就有用到這個前台的渲染模版,當時挺忙的也沒時間抽空總結一下,剛好上周項目里又用到這個輕量型的渲染模版,真心感覺很好用,因此就總結一下使用心得,算是一個入門級別的指引吧。

1.  Mustache 概述

Mustache是基於JavaScript實現的模版引擎,類似於JQuery Template,但是這個模版更加的輕量級,語法更加的簡單易用,很容易上手。

2.  Mustache 具體的使用

下面就具體講一下Mustache的使用。在開始講之前,需要先從git hub上獲取相關的mustache.js文件,獲取文件之后,新建一個解決方案,目錄如下:

 

然后就開始具體的使用,首先需要在頁面的head標簽內引用Jquery.js 和Mustache.js兩個腳本文件,主要有以下幾個方面(以下演示的方法均在head標簽中的script代碼塊中):

2.1          簡單的對象綁定展示

代碼示例:

 

$(function () {
            var user = { name: "Olive", age: 23, sex: "girl" };
            var template = "My name is  {{name}} ,I'm  {{age}} ,Sex is {{sex}}";
            var view = Mustache.render(template, user);
            $("#user_info").html(view);

  

頁面呈現效果:

 

 

語法解釋:

                         i.              Mustache的語法很簡單,用兩個大括號標記要綁定的字段即可,“{{}}”;

                       ii.              大括號內的字段名稱要和Mustache.render方法中的第二個參數中的對象的屬性名一致

                      iii.              主要的渲染方法為Mustache.render,該方法有兩個參數,第一個為要渲染的模版,也就是上例中的template,第二個就是數據源也就是上例中的user對象

 

2.2          對象數組循環渲染展示

代碼示例:

 var users = { result: [{ name: "Only", age: 24, sex: "boy" },
                                   { name: "for", age: 24, sex: "boy" },
                                   { name: "Olive", age: 23, sex: "girl" }
                                   ]
            };
            var template = "<div><table cellpadding=0 cellspacing=0 class='tb' ><tr><td>Name</td><td>Age</td><td>Sex</td></tr>{{#result}}<tr><td>{{name}}</td><td>{{age}}</td><td>{{sex}}</td></tr>{{/result}}</table><div>";
            var views = Mustache.render(template, users);
            $("#users_info").html(views);

頁面呈現效果:

 

語法解釋:

           i.              對於對象數據Mustache也有其特殊的語法:{{#}}{{/}},如果所給定的數據源是一個對象數組,則可以使用該語法,很方便的用來循環展示。

         ii.              其中{{#}}標記表示從該標記以后的內容全部都要循環展示

        iii.              {{/}}標記表示循環結束。這種情況多用於table行的展示。

 

2.3          判斷對象為null(false/undefined)展示

代碼示例:

  var users = { result: [{ name: null, age: 24, sex: "boy" },
                                  { name: "for", age: 24, sex: "boy" },
                                   { name: "Olive", age: 23, sex: "girl" }
                                  ]
            };
            var template = "<div><table cellpadding=0 cellspacing=0 class='tb' ><tr><td>Name</td><td>Age</td><td>Sex</td></tr>{{#result}}<tr><td>{{#name}}{{name}}</td><td>{{age}}</td><td>{{sex}}{{/name}}</td></tr>{{/result}}</table><div>";
            var views = Mustache.render(template, users);
           $("#users_info1").html(views);

頁面呈現效果:

 

語法解釋:

           i.              上邊我們有講到{{#}}{{/}}這樣的語法,除了上邊的循環遍歷之外,它還有另外的一層意思就是判空,如果{{#}}中的值為null或false或undefine則其標記內的內容則不展現

         ii.              在代碼示例中,users對象中的第一個對象名為null,所以在展示時,該條用戶信息沒有被展示。

        iii.              有了判空的方法當然還有與之相反的方法{{^}},該方法表示的意思與{{#}}意思相反。

2.4 防止html轉義展示

代碼示例:

var user = { name: "<h1>Olive</h1>" };
           var template = "my name is {{&name}}";
            var view = Mustache.render(template, user);
            $("#user_name").html(view); 

頁面呈現效果:

 

如果不在{{}}中加&,則效果如下:

 

語法解釋:

           i.              在某些時候,我們要綁定的數據源中可能會有一些html標記,如果單純的采用{{}}這種方式來綁定的話,默認的會將html標記轉義。為了解決防止綁定字段中的內容被轉移我們可以這樣做{{&}},這樣就可以防止轉義。

 

好了,今天就總結到這里了,希望能給大家一些幫助。


免責聲明!

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



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