JsRenderチュートリアル - テンプレートでの条件分岐
JavaScript製でjQuery非依存なテンプレートエンジンであるJsRender/JsViewsを使ったチュートリアルを書いてみようと思います。
以前に書いたエントリJsRender入門 - Do You PHP はてなも参照してください。
今回やること
テンプレート内でifタグを使って条件分岐する
コード
<html> <body> <!-- レンダリング結果を表示するスペース --> <div id="result"></div> <script src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script> <script src="http://www.jsviews.com/download/jsviews.min.js" type="text/javascript"></script> <script type="text/javascript"> // 条件分岐 - ifタグ $(function() { // 表示するデータ(配列) var fruits = [ { name: "りんご", num: 3 }, { name: "いちご", num: 5 }, { name: "バナナ", num: 2, unit: '本' } ]; // テンプレートに名前(ここでは"linkTemplate")をつけて登録する $.templates({ linkTemplate: "#template" }); // テンプレート"linkTemplate"に変数fruitsを渡し、 // レンダリング結果を表示 $('#result').html($.render.linkTemplate(fruits)); }); </script> <!-- テンプレート --> <script id="template" type="text/x-jsrender"> <p> {{>name}}が{{>num}} {{if unit}} {{>unit}} {{else}} 個 {{/if}} あります </p> </script> </body> </html>
説明
プログラミング言語と同様、JsRenderにもif文があります。構文はifタグを使って以下のようになります。
{{if [条件1]}} : {{else [条件2]}} : {{else}} : {{/if}}