Googleが開発している
AngularJS(以下angular)のバージョンが1.0になったらしいので、サンプルを作ってみました。最近はClojureに対する愛が高まっているので、サーバーサイドには
Compojureを選びました。angular-Compojure間をAjaxで通信することを目標に、一行掲示板のようなものを作りました。
clj-anglr
苦労したこと
angularから送ったJSONをCompojure側で受け取るところ。
Compojureのサンプルを検索してすぐに見つかるのは
Badのほうだと思いますが、この書き方ではangularから送ったJSONを受信できません。JSONはリクエストパラメータとしてではなく、リクエストのBODYに格納されるため、
Goodのように自分でBodyから取り出す必要がありました。
感じたこと
angularのマッピングは快適です。特に$scopeへ追加したオブジェクトを更新すると、何もしなくても画面に反映されるのがすごいと思いました。業務で作っているシステムは頻繁に画面がちらつく・・・。
もう一つ、サーバーサイドにCompojureというのはアリだと思いました。Clojureのデータ構造はシンプルなのでJavaに比べてなんとなく不安でしたが、JavaScriptと通信する時にJSONに変換するのであれば、大して問題にならない気がしました。むしろ、無駄な情報がないために見通しがいいとも感じました。
業務で使うことはまだないと思いますが、なかなか興味深いライブラリでした。