JSライブラリ > Mustache.js Mustache.js †Mustache.js とは †JavaScriptのテンプレートエンジン 利用準備 †https://github.com/janl/mustache.js/ からダウンロードした js をヘッダで読み込む <head> <meta charset="utf-8" /> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="mustache.min.js"></script> </head> ・ ・ 単純な値の展開 †var view = { title: "Joe", // 関数を指定する事も可能 calc: function () { return 2 + 4; } }; var output = Mustache.render("{{title}} spends {{calc}}", view); リストの展開 †<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <script src="jquery.min.js"></script> <script src="mustache.min.js"></script> <script type="text/javascript"> $(function(){ var template = $("#result").html(); var html = Mustache. render( template, { book : [ {title : "タイトル1", price : 1000 } ,{title : "タイトル2", price : 2000 } ,{title : "タイトル3", price : 3000 } ,{title : "タイトル4", price : 4000 } ,{title : "タイトル5", price : 5000 } ] ,priceAndTax : function(){ return this.price * 1.08 } }); $("#result").html(html); }); </script> </head> <body> <div id="result"> <ul>{{#book}}<li>{{title}} : {{price}}円 税込:{{priceAndTax}}</li>{{/book}}</ul> </div> </body> </html> 条件分岐 †HTML 一覧<br /> <div id="result2"> <ul>{{#person}}<li>{{name}} : 年齢:{{price}} 性別:{{sexJp}}</li>{{/person}}</ul> </div> <hr /> 男性のみ<br /> <div id="result3"> <ul>{{#person}}{{#isMan}}<li>{{name}} : 年齢:{{price}} 性別:{{sexJp}}</li>{{/isMan}}{{/person}}</ul> </div> JavaScript $(function(){ var personData = { person : [ { name:"taro" , age: 20, sex: "man" } ,{ name:"hanako", age: 25, sex: "woman"} ,{ name:"ichiro", age: 30, sex: "man"} ,{ name:"jiro" , age: 35, sex: "man"} ], sexJp : function(){ if (this.sex == "man"){ return "男性"; } else if (this.sex == "woman") { return "女性"; } else { return "不明"; } }, isMan : function(){ return (this.sex == "man"); } }; var template2 = $("#result2").html(); var html2 = Mustache.render( template2, personData); $("#result2").html(html2); var template3 = $("#result3").html(); var html3 = Mustache.render( template3, personData); $("#result3").html(html3); }); |