RailsでView側でslim、simple_formを使っていて、angularjsを使ってみた時に困ったこと。
angularjsの導入意図
- javascriptのコードの肥大化してきたので、削減したい
- 単に、jQueryに変わるものを使ってみたかった
やりたいこと
- angularjsとrailsを利用する場合、railsをAPIに徹するのがベストプラクティスなのはわかっているのだが、simple_formも捨てないでやってみる
- クリックイベントなど、現在javascriptでやっているところはangularjsへ、viewの描画などは、既存の通りview(simple_form)等でおこなるう
導入
- rails-bowerをGemに追加
- Bowerfileにて、angularjs(1.4系)を追加
全体的に困ったこと
- javascriptのコードは短くなったけど、slimのコードは長くなった
嫌だなと思ったとこ
- input_htmlでつらつらng-model, ng-change等を書く必要がある
- angularjsでdata bindingを使う場合(ng-modelを使う場合)、いちいちng-initで初期値を設定する必要がある。
結論
- simple_form(普通のform_forも)の場合、初期値(保存値)の設定が楽なのに、angularjsを使うとめんどくさく感じる
- ng-change等は許容範囲
- directiveを作って、javascriptが綺麗になるのは素敵