1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          Mustache學習

          來源:互聯網轉載 時間:2024-01-29 08:20:27

          Mustache是基于JavaScript的一款模版Web引擎,Web 模板引擎是為了使用戶界面與業務數據(內容)分離而產生的,它可以生成特定格式的文檔,通常是標準的 HTML 文檔。

          一、Mustache簡介

          Mustache 是一個 logic-less (輕邏輯)模板解析引擎,它的優勢在于可以應用在 Javascript、PHP、Python、Perl 等多種編程語言中。

          二、Mustache語法

          1、{{keyName}}

          2、{{#keyName}} {{/keyName}}

          3、{{^keyName}} {{/keyName}}

          4、{{.}}

          5、{{<partials}}

          6、{{{keyName}}}

          7、{{!comments}}

          三、demo介紹

          1、{{keyName}}

          var data={        name:"張三",        age:22,        sex:"girl"}var template="My name is {{name}},I'm {{age}} years old,I'm a {{sex}} !";var view=Mustache.render(template,data);document.getElementsByTagName("body")[0].innerHTML=view;

          分析:{{keyName}}中的{{}}就是Mustache的標識符,keyName就是data對象中的鍵名,這句的作用是直接輸出與鍵名匹配的鍵值!

          2、{{#keyName}} {{/keyName}} 有兩種用法:

          第一種:

          以"#"開始,"/"結束,被它們所包圍的標簽為進行循環多次渲染,keyName為需要循環渲染的數組名,代碼如下:

          注意:這里的keyName表示需要表示需要循環渲染到html模版中的數組的數組名,

          var obj={    result:[    {name:null,age:22,sex:"女"},    {name:"李四",age:22,sex:"男"},    {name:"王五",age:22,sex:"男"}]};var template="<table>"            +"<thead><tr><td>姓名</td><td>年齡</td><td>性別</td></tr></thead>"            +"<tbody>" +            "{{#result}}" +            "<tr>" +            "<td>{{name}}</td>" +            "<td>{{age}}</td>" +            "<td>{{sex}}</td>" +            "{{/name}}</tr>" +           "{{/result}}" +            "</tbody>"            +"</table>";var view=Mustache.render(template,obj);document.getElementsByTagName("body")[0].innerHTML=view;
          image.png

          上面的代碼對result數組進行了循環渲染,以{{#result}}開始,以{{/result}}結束,中間包裹著需要循環綁定數據的標簽!

          第二種:

          {{#keyName}} {{/keyName}}還有第二種用法,當keyName表示鍵名的時候,代碼如下:

          注意:這里的keyName表示鍵名,并不表示需要循環的數組名

          var obj={    result:[    {name:null,age:22,sex:"女"},    {name:"李四",age:22,sex:"男"},    {name:"王五",age:22,sex:"男"}]};var template="<table>"            +"<thead><tr><td>姓名</td><td>年齡</td><td>性別</td></tr></thead>"            +"<tbody>" +            "{{#result}}" +            "<tr>" +            "<td>{{#name}}{{name}}</td>" +            "<td>{{age}}</td>" +            "<td>{{sex}}{{/name}}</td>" +            "</tr>" +           "{{/result}}" +            "</tbody>"            +"</table>";var view=Mustache.render(template,obj);document.getElementsByTagName("body")[0].innerHTML=view;

          分析代碼和提供的obj數據發現,result數組中的第一個對象的name屬性值為空,當我們使用{{#name}}{{/name}}將<tr></tr>包圍的時候,發現這個時候name為空的那一整行數據就被排除掉了,這了注意:根據{{#name}}{{/name}}放的位置的不同,會產生不同的效果!

          3、{{^keyName}}{{/keyName}}? 與{{#keyName}}{{/keyName}}第二種用法的作用相反,代碼如下:

          var obj={    result:[    {name:null,age:22,sex:"女"},    {name:"李四",age:22,sex:"男"},    {name:"王五",age:22,sex:"男"}]};var template="<table>"            +"<thead><tr><td>姓名</td><td>年齡</td><td>性別</td></tr></thead>"            +"<tbody>" +            "{{#result}}" +            "<tr>" +            "<td>{{^name}}</td>" +            "<td>{{age}}</td>" +            "<td>{{sex}}</td>" +            "</tr>{{/name}}" +           "{{/result}}" +            "</tbody>"            +"</table>";var view=Mustache.render(template,obj);document.getElementsByTagName("body")[0].innerHTML=view;
          image.png

          根據輸出和分析上面的代碼,發現{{^name}}{{/name}}再循環玩result對象數組后,只輸出了name值為null的那一行值!

          4、{{.}}??? 表示枚舉,可以循環輸出整個數組,例如:

          var obj={    result:["Macbook ","iPhone ","iPod ","iPad "]};var template="<p>{{#result}}<span>{{.}}</span>{{/result}}</p>";var view=Mustache.render(template,obj);document.getElementsByTagName("body")[0].innerHTML=view;

          分析如上代碼和輸出發現:{{#result}}{{/result}}表示循環的目標是result數組,{{.}}則表示循環輸出result中的每一項

          5、{{keyName.keyName}}?

          var data={    company:["Microsoft"],    adress:{        province:"浙江",        city:"湖州",        county:"安吉",        town:"報福",        village:"統里"    }}var template="<h1>{{company}}</h1><ul>" +        "<li>{{adress.province}}</li>" +        "<li>{{adress.city}}</li>" +        "<li>{{adress.county}}</li>" +        "<li>{{adress.town}}</li>" +        "<li>{{adress.village}}</li>" +        "</ul>";var view=Mustache.render(template,data);document.getElementsByTagName("body")[0].innerHTML=view;
          image.png
          標簽:mustache-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          1000000臺幣等于多少?發射所有。100萬新臺幣等于19.86萬。匯率在不斷變化。使用時請參考您需要的當天的現行匯率。銀行柜臺和網上銀行的兌換以當時的實時報價為準。比如: ;的最新匯率查詢,可以輸入百度臺幣一千萬是多少?貨幣交易所:新臺幣10000000元=2174811.3351元。以上數據僅供參考。具體交易請以銀行柜臺交易價格為準。100萬新臺幣折合多少元?新臺幣與舊臺幣有區別嗎?按照目...

          唐山衛視是幾頻道?唐山衛視是11頻道,各地區可能不一樣。唐山電視臺地址在哪?地址:廣達街1號,唐山工人醫院對面郵政編碼:06300唐山電視臺地址:唐山市光大街1號唐山有線廣播電視臺地址:唐山市印盒路附近唐山有線廣播電視臺地址:唐山市光大街1號唐山電視演播室地址:唐山市國防路唐山電視臺影視頻道廣告部地址:河北省唐山市光大街1號唐山有線電視臺大理路地址:唐山市大理路46號廣播電臺在唐山的頻率是多少?1...

          安徽路 安霍邱縣郵政編碼237400霍邱縣區號0564六安的郵政編碼?魯郵政編碼;;安徽省安市237000郵政編碼行政區231300舒城縣陸 安徽省安市壽縣路232200。;安徽省安市237000金安區安路。;安徽省安市霍山縣路237200。;安徽省安市金寨縣路237300。;安徽省安市237400霍邱縣陸路。;安徽省安市。魯霍邱縣潘集鄉的郵政編碼。;安徽省安市,安徽省六安市霍邱縣潘集鄉郵編是什么...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>