![]() |
最近のマイブームはドップラーレーダー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 file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
App.Store = DS.Store.extend({ | |
init: function() { | |
this._super(); | |
this.pushMany(App.Post, [{ | |
id: 1, | |
text: 'Initial post.' | |
},{ | |
id: 2, | |
text: 'Second post.' | |
}]); | |
} | |
}); | |
App.Post = DS.Model.extend({ | |
text: DS.attr('string') | |
}); |
なお、こうやっておいといたデータは、コントローラの中で this.store.all('model名');って書けば取り出すことができます。これで良くある「都道府県プルダウンメニュー」が作れますw こんなものまでRESTで取ってたらキリないし。
Ember.js本体は最近落ち着いてきたんですが、Ember-Data.jsについては、まだβだといえばそれまでなんですが、こういうundocumented(いや、どこかに書いてあるのかもしれませんが)な変更が多くて困ります。どこかの「俺様がEmberを使わない理由」っていうページにも書いてあったんですが、ドキュメントが古かったり矛盾してたりするんですよね。
せめてわかったことだけでも貢献したいけど英語力がないので、とりあえず自分のブログに書いておきます。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。