5

Ember と Ember-data を使用して、カスタム アダプター内で findAll 呼び出しを使用して、REST API から数百のオブジェクトを読み込みます。findAll を参照する ArrayController.content があり、最近追加された Ember.Selectを使用して、選択ウィジェット/ドロップダウン メニューにオブジェクトを表示します。すべてのオブジェクト (各オブジェクトは選択のオプション) で完全にレンダリングされたら、選択ウィジェットで関数を実行する必要があります (特に、Chosen.js ライブラリ) 。

select 内の数百のオブジェクトを処理するには少し (2 ~ 4 秒) かかるため、イベント Ember.Select.didInsertElement および Ember.ArrayController.contentDidChange でコールバックを使用してもうまくいきません。どちらも発砲が早すぎます。では、代わりに使用できる別のイベントまたは別のアプローチはありますか?

4

1 に答える 1

9

DS.RESTAdapter.findQueryが答えです!メソッドとは対照的に、アプリ内のどこでも観察できる独自のisLoadedDS.RESTAdapter.findAllを適切に持っているを作成して返します。DS.AdapterPopulatedModelArray

例えば:

App.store = DS.Store.create({
    adapter: DS.RESTAdapter.create()
});

App.set('MyItemList', App.store.findQuery(App.Item, 'homepageList'));

App.MyView = Ember.View.extend({
    refresh: function () {
        console.log('finished loading custom list');
    }.observes('App.MyItemList.isLoaded')
});
于 2012-03-05T15:09:32.473 に答える