Ember.SelectView使えなくなっちゃったよ?
Emberの1.13でEmber.Viewがdeprecatedになっていますが、
一番困るのはやはりEmber.SelectView
が使えなくなることではないでしょうか。
公式のガイドには、次の3つのアップグレードパスが提示されています。
- componentを作る
- templateに直接selectタグを書く
- add-onのx-selectを使う
アドオンでもうすでにあるやつを使ったほうが楽だし魅力的なだなーと思ったけど、GitHubを見に行ったら{{x-select}}
と{{x-option}}
ってなってて、直接タグ書くこととの違いが見つけにくく、あと、将来Ember2.0になったら、いつか本体に載るかもね、という感じで書いてあって、だったらそん時にちゃんと対応したほうがよいのではと思い、大した量じゃないし、直接タグを書く方針で対応しました。
結局Component書く
と思って、コツコツ対応していましたが、似たようなコードを何度も書く羽目になって、やっぱりComponentを作ってしまいました。(ソースコードはこちら。)
公式のお手本を参考にしていますが、いままでのEmber.SelectView
に似せる形でvalue
を直接指定できるのと、content
がオブジェクトの配列じゃなくてvalue(数値とか文字列とか)
の配列でも動くようにしています。
これでselectのところ以外の実装は変えずにアップグレードできるはず。
とここまで書いておいてアドオンのほうをよくよく見たら、Ember.SelectView
と互換性があるBlockless Formでも書けるらしい。(ここ)
ということで、まとめ。
Emberの今後の方向性として、Reactっぽく、入れ子のComponentでViewを作る(将来的にはRouteの受け皿として直接Componentが使えるようになる?)感じでComponent重視です。
ですので、
- ViewのSelectをあまり多用していない
- 自分たちのプロジェクトの使い方にjustなComponentを作って将来に備えたほうがよさげ
- たくさん使っている
- 一先ずアドオンを導入してEmberのバージョンアップをやり過ごしつつ、
- アドオンはまさにEmberのComponent重視の戦略に乗っかっていて、
x-select
とx-option
に分かれているので、徐々にそちらに移行するというのがよさそうかなと思います。