[Javascript]Javascriptでテンプレートエンジンを作ってみた
前回のエントリがブックマークしてくれた人が多かったので嬉しくなって作ってみました。
テンプレートエンジンはAjaxPagesを前は使ってましたが、サーバのレスポンスが悪いとテンプレートをロードする前に表示しようとしてエラったので、自分好みのテンプレートエンジンを作りました。
特徴
- Javascriptでテンプレートが使える
- 外部ファイルが使える(タイムアウトも設定できる。)
- 文字列をテンプレートとして使える
- JSPっぽい書き方が出来る
- テンプレートが展開された内容が確認できる!デバック簡単!(かもしれない)
- ライセンスがMITで使い放題
サンプルとダウンロード
使い方
jsTemplate('sample01.jshtml') // 読み込み エラーがあれば通知 .load(function(e){ alert('error '+e); }) // レンダリング .rendering(function(render){ var str = render({aa:'AA'});// 値を渡す $('stage1').innerHTML=str; });
- jsTemplateで外部ファイルか文字列を渡す
- loadすると指定された外部ファイルを読みにいく(loadしない場合は指定された文字列がテンプレートとして解釈される)
- renderingでコールバックで渡された引数(render関数)を実行するとテンプレートがレンダリングされた文字列が取れる。
- テンプレートの表記方法
- <% 〜 %>部分はJavascriptとして解釈されます。
- <%="" %>でリテラルを表示できます。
- <%=context.XXX %>でrenderingのコールバックのrender関数で渡した値を取得できる。