Zusaarのページを更新しました
2014年6月17日
@nqounetです。
Zusaarのページというか、Oboe.jsのサンプルページがあまりにも手抜きすぎたので、整形済みテキストではなくHTMLで書くようにしました。
テンプレート
よく言われるフレームワークに、MVCフレームワークというのがあります。
Model, View, Controllerというものをそれぞれ独立させることで、開発を容易に行えるようにするものです。
協業する際に、Viewの部分をデザイナーさんに任せられると楽だなぁ、と思いながらよく使うのですが、まあ、なかなかそんな方はいません。
例えば、jQueryで新しいリストを追加する時にこんなことしていたら大変ですよ。
1 | var text = 'hoge'; |
HTMLの中にパラメータを入れると、生成されるHTMLが想像しやすいですね。
1 | <ul> |
実際に、リストで追加したい場合は、複数の要素があるのが普通ですので、li
の部分をテンプレートにしておくと結構楽です。
このようなテンプレート機能を持つシンプルなライブラリとしてMustacheがあります。
Mustacheを使ってリストの要素のテンプレートを使ったスクリプトを書くとこんな感じです。
1 | var $ul = $('<ul/>'); |
リストを増やしたい場合は、render部分をループに入れておく、という方法があります。
Mustacheでも配列を操作できます。例えば、以下の様な構造のデータがあったとした場合です。
1 | { |
list
は、text
というプロパティを持った配列です。
これをリスト形式で表示するには、以下の様なテンプレートを用います。
1 | {{#list}} |
値がなかった時は、リストではなく段落で表示したりすることもできますよ。
Oboe.jsはループの中身の処理を書く
Oboe.jsは、nodeイベントがあるお陰で、通常のJSON解析後、ループで処理する部分で処理が可能になります。
普通の配列(例えばevents)を処理する場合は以下のようになるでしょう。
1 | events.forEach(function(value){ |
Oboe.jsの場合は以下のようになるでしょう
1 | Oboe(url) |
どちらも同じ関数で処理ができますね。
ループの中身は簡単にイメージできると思うので、それと同じように書けるのも利点の1つだと思います。