6

ページの読み込み時にemberjsアプリのデータをブートストラップするための最良の方法は何ですか。data-for属性または非表示のdiv内のデータのいずれかからデータを取得する可能性が高いことはわかっていますが、これはemberjsアプリのライフサイクルのどこに行きますか?

4

1 に答える 1

3

ロードする可能性のあるデータにはいくつかの種類があります。(静的データの場合)または(動的データの場合)ember-dataと一緒にモデルを使用しています。DS.FixtureAdapterDS.RESTAdapter

これは、フィクスチャを使用した小さな例です。

App.Store = DS.Store.extend({
  revision: 11,
  adapter: 'DS.FixtureAdapter'
});

App.Page = DS.Model.extend({
  title: DS.attr('string')
});

App.Page.FIXTURES = [{
    id: 1,
    title: "Test Title #1"
  }, {
    id: 2,
    title: "Random Title #2"
  }];

私の(小さい)アプリでは、ストアとモデルを定義した直後にフィクスチャデータをロードしています。これは、単純な1対1の関連付けに適しています(タイプまたはカテゴリの静的リストを考えてください)。非フィクスチャタイプのデータを使用する場合、それはmodelルート上の属性として指定されるだけであり、必要に応じてロードされます。

アップデート

ページの読み込み時に初期データ(たとえば、loggedInなどの初期ページの状態)をプリロードするには、次を使用できますDS.Store#load

Store = DS.Store.create({
  revision: 11
});

Page = DS.Model.extend({
  title: DS.attr('string')
});

Store.load(Page, {id: 1, title: 'Wow Cool Title'});

Store.find(Page, 1).get('title') //=> 'Wow Cool Title'
于 2013-03-14T21:06:24.193 に答える