タグ別アーカイブ: Javascript

GoogleのJavaScript ライブラリ「JsTemplate」

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>

みたいな感じ。

でも、属性値に指定データの中身を入れる事はまだできないぽいです。
今後に期待です。