GoogleからJavascriptのテンプレートエンジンシステム、JsTemplate がリリースされていたので、少し試して見ました。
こんな感じのJavascriptでshowDataメソッドを実行すると、
data = [{artist:"Teenagefunclub", title:"BANDWAGONESQUE"}, {artist:"Haven", title:"All for a Reason"}, {artist:"Gisli", title:"How About That?"}, {artist:"Fizzgig", title:"Reset"}]; function showData() { var input = new JsEvalContext(data); var output = document.getElementById('t'); jstProcess(input, output); }
こんなHtmlが、
<div id="t"> <ul jsselect="$this"> <li> <span jscontent="artist"></span> / <span jscontent="title"></span> </li> </ul> </div>
こんな風に出力されます。
<div jstcache="0"> <ul jsinstance="0" jstcache="1" jsselect="$this"> <li jstcache="0"> <span jstcache="2" jscontent="artist">Teenagefunclub</span> / <span jstcache="3" jscontent="title">BANDWAGONESQUE</span> </li> </ul><ul jsinstance="1" jstcache="1" jsselect="$this"> <li jstcache="0"> <span jstcache="2" jscontent="artist">Haven</span> / <span jstcache="3" jscontent="title">All for a Reason</span> </li> </ul><ul jsinstance="2" jstcache="1" jsselect="$this"> <li jstcache="0"> <span jstcache="2" jscontent="artist">Gisli</span> / <span jstcache="3" jscontent="title">How About That?</span> </li> </ul><ul jsinstance="*3" jstcache="1" jsselect="$this"> <li jstcache="0"> <span jstcache="2" jscontent="artist">Fizzgig</span> / <span jstcache="3" jscontent="title">Reset</span> </li> </ul> </div>
なかなか面白いです。
ここで、簡単に試すことができます。
でも、dataにURL入れてリンクとかにしたくないですか?
data = [{artist:"Teenagefunclub", url:"http://xxx.net/123"}, {artist:"Haven", title:"http://xxx.net/456"}];
を
<ul> <li><a href="http://xxx.net/123">Teenagefunclub</a></li> <li><a href="http://xxx.net/456">Haven</a></li> </ul>
みたいな感じ。
でも、属性値に指定データの中身を入れる事はまだできないぽいです。
今後に期待です。