超實用 mustache 經典範例
不知道什麼是mustache?? 請看此篇 mustache介紹
小提醒:
使用javascript版本時,若想要使用jquery方式,請記得下載完mustache.js後,確認有無這段,若無請加上以下這段code
;(function($) {
/*
* ...
*此區域為mustach檔案內的程式碼
* ...
*/
$.mustache = function (template, view, partials) {
return Mustache.render(template, view, partials);
};
$.fn.mustache = function (view, partials) {
return $(this).map(function (i, element) {
var template = $(element).html().trim();
var output = $.mustache(template, view, partials);
return $(output).get();
});
};
})(jQuery);
範例一 mustache基本使用,將放入的變數置入template中顯示出來並且顯示出來
範例1 : js程式碼
var template_1 = "";
template_1 += "{{name}} : Welcome come to Tech A Ride, nice to meet you {{passer}}";
template_1 += "{{passer}} : {{name}}我不會說英文,你可以講中文嗎?";
template_1 += "{{name}} : 沒問題,歡迎你來到Tech A Ride";
var data = { name : "Zam",
passer : "路人"
};
var output_html = $.mustache(template_1,data);
console.log(output_html);
範例1 : 輸出結果
Zam : Welcome come to Tech A Ride, nice to meet you 路人 路人 : Zam我不會說英文,你可以講中文嗎? Zam : 沒問題,歡迎你來到Tech A Ride
範例二 mustache if else判斷式使用
利用if > {{#}}{{/}} else > {{^}}{{/}},判斷那些程式碼是否要顯示出來。
範例2 : js程式碼
var template_2 = "";
template_2 += "{{#english_mode}}";
template_2 += "{{name}} : {{passer}}, welcome come to Tech A Ride";
template_2 += "{{/english_mode}}";
template_2 += "{{^english_mode}}";
template_2 += "{{name}} : {{passer}}歡迎來到 Tech A Ride";
template_2 += "{{/english_mode}}";
template_2 += "{{passer}} : 你好,{{name}}";
var data = { name : "Zam",
passer : "路人",
english_mode : false
};
var output_html = $.mustache(template_2,data);
console.log(output_html);
範例2 : 輸出結果
Zam : 路人歡迎來到 Tech A Ride 路人 : Zam我不會說英文,你可以講中文嗎?
範例三 預防mustache自動編碼
利用{{{}}} or {{&}},預防傳進去的變數被編碼。
範例3 : js程式碼
var template_3 = "";
template_3 += "{{techaride}}";
template_3 += "
";
template_3 += "{{{techaride}}}";
template_3 += "
";
template_3 += "{{&techaride}}";
var data = { techaride: "Tech A Ride" };
var output_html = $.mustache(template_3,data);
console.log(output_html);
範例3 : 輸出結果
<b>Tech A Ride</b> Tech A Ride Tech A Ride
範例四 當傳進去的值不存在或空值時,則將不會執行或輸出
範例4 : js程式碼
var template_4 = "";
template_4 += "Shown.";
template_4 += "{{name}}";
template_4 += "{{techaride}}";
template_4 += "{{#nothin}}";
template_4 += "
";
template_4 += "Never shown!";
template_4 += "{{/nothin}}";
var data = { name: "",
techaride: "Tech A Ride" };
var output_html = $.mustache(template_4,data);
console.log(output_html);
範例4 : 輸出結果
Shown. Tech A Ride
範例五 用傳進去的陣列,做出loop效果
{{#array}} 區間code {{/array}} 若傳進去的變數是個陣列,則會一直執行區間code直到結束,陣列裡面的值可用{{variable}}將值放入
範例5 : js程式碼
var template_5 = "";
template_5 += "{{#array}}";
template_5 += "{{name}}";
template_5 += "
";
template_5 += "{{/array}}";
var data = { array: [{ name: "Tech A Ride" },
{ name: "Tech A Ride all day" },
{ name: "Do you like Tech A Ride" } ]};
var output_html = $.mustache(template_5,data);
console.log(output_html);
範例5 : 輸出結果
Tech A Ride Tech A Ride all day Do you like Tech A Ride
範例六 用Lambda做出包裹外框效果
{{#wrapped}} 區間程式碼 {{/wrapped}},若傳進去的wrapped是function,則可以使用Lambda
範例6 : js程式碼
var template_5 = "";
template_5 += "{{#wrapped}}";
template_5 += "{{name}}";
template_5 += "{{/wrapped}}";
var data = { "name": "Tech A Ride",
"wrapped": function() {
return function(text) {
return "" + render(text) + ""
}
}
};
var output_html = $.mustache(template_6,data);
console.log(output_html);
範例6 : 輸出結果
Tech A Ride
來源網站

Comments
Post a Comment