
今回はシンプルなJavaScriptテンプレートエンジンICANHAZ.JSを使ってみたいと思います。
まずはこちらのサイトからデータをダウンロードします。
URL:http://icanhazjs.com/
使い方はとってもシンプルw
以下サンプル。
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>ICANHAZ.JS</title>
<script type="text/javascript" src="js/ICanHaz.min.js"></script>
<script type="text/javascript">
window.onload = function(){
var user_data_object = {
name:"yamashiro",
twitter:"yamajiro"
};
var user = ich.user(user_data_object);
document.getElementById('target').innerHTML = user;
}
</script>
</head>
<body>
<h1>ICANHAZ.JS</h1>
<div id="target"></div>
<script id="user" type="text/html">
<li>
<p class="name">Hello I'm {{ name }}</p>
<p><a href="http://twitter.com/{{ twitter }}">@{{ twitter }}</a></p>
</li>
</script>
</body>
</html>
コード解説
まずテンプレート定義部分のから。
<script id="user" type="text/html">
<li>
<p class="name">Hello I'm {{ name }}</p>
<p><a href="http://twitter.com/{{ twitter }}">@{{ twitter }}</a></p>
</li>
</script>
この部分がHTMLのテンプレートになります。
いつもはJavaScriptのタイプ属性を「text/javascript」としますが、「text/html」としてID属性を付けます。
で変数を入れる部分は2重の中括弧「{{ }}」で囲います。
続いて実際にデータをテンプレートに入れる部分。
var user_data_object = {
name:"yamashiro",
twitter:"yamajiro"
};
var user = ich.user(user_data_object);
「ich」が「ICANHAZ.JS」のオブジェクトです。
user()メソッドは、scriptタグで定義したテンプレートのID名のメソッドが自動で生成されるようです。
そのuserメソッドにそのままデータを渡せば生成されたHTMLを返してくれます。
あとはそのままターゲットに入れています。
document.getElementById('target').innerHTML = user;
非常にシンプルで使いやすいので、今度もう少し使い込んでみようと思います。
コメントを残す