2015年2月18日水曜日

Emberjs:定数のロードはload/loadManyじゃなくてpush/pushMany

最近のマイブームはドップラーレーダーw

Ember.jsのFixturesを使えばRESTサーバが動いていなくてもRESTで取ってくるのと同じ形式のデータを予め用意することができるので、Webデザイナとサーバサイドがいい感じで同時並行して作業ができます。

が。

Fixture AdapterはREST Adapterと共存することができません。例えば、「他の処理/データはすべてRESTで取ってくるけど都道府県を定数配列として置いておきたい」というような場合に「都道府県だけFixtureであとはREST」というワザは使えません。

そういう場合には、REST Adaptetを指定しておいてDS.Storeに定数配列を置きます。困ったときのStackOverflowさんにも出ています。
ってか、あちこちググっても、みんなload/loadManyを使えって書いてあります。

でも、使えませんorz 最初、Ember.jsの公式ページ(Ember.js - DS.Store)の一番下にあるリストで「Deprecated」をチェックしてみたのですが、load/loadManyのことは出てきません。それから迷走しまくり探しまくりだったのですが…結局、push / pushManyを使えば同じことができると判明しました。


なお、こうやっておいといたデータは、コントローラの中で this.store.all('model名');って書けば取り出すことができます。これで良くある「都道府県プルダウンメニュー」が作れますw こんなものまでRESTで取ってたらキリないし。

Ember.js本体は最近落ち着いてきたんですが、Ember-Data.jsについては、まだβだといえばそれまでなんですが、こういうundocumented(いや、どこかに書いてあるのかもしれませんが)な変更が多くて困ります。どこかの「俺様がEmberを使わない理由」っていうページにも書いてあったんですが、ドキュメントが古かったり矛盾してたりするんですよね。

せめてわかったことだけでも貢献したいけど英語力がないので、とりあえず自分のブログに書いておきます。

0 件のコメント:

コメントを投稿