ページの読み込み時にemberjsアプリのデータをブートストラップするための最良の方法は何ですか。data-for属性または非表示のdiv内のデータのいずれかからデータを取得する可能性が高いことはわかっていますが、これはemberjsアプリのライフサイクルのどこに行きますか?
質問する
1291 次
1 に答える
3
ロードする可能性のあるデータにはいくつかの種類があります。(静的データの場合)または(動的データの場合)ember-data
と一緒にモデルを使用しています。DS.FixtureAdapter
DS.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 に答える