4

ページの読み込み時に (サーバーへの別のトリップを避けるために) 最初の HTML/javascript と共に送信したいかなり複雑な Ember.js オブジェクトがありますが、ユーザーはそれを変更できます。

そこで、直接そこにある FIXTURE データをセットアップする方法と、サーバーにロード/保存できるように RESTAdapter をセットアップする方法を知っています...両方を行うことはできますか?

どちらかのために、店は一度セットアップされるようです1 つのデータ ソースに対して複数のストアを使用できますか?

ありがとう!

4

2 に答える 2

4

アプリケーション コードの外部からデータをロードする場合は、次のように実行できます。

ドキュメントにプリロード関数を追加します (すべての app.js および store.js の下):

<script>
    window.preload = function(store) {
        store.loadMany(App.Post,[10,11],[{ id: 10, content: "testcontent", author_id: 1 },{ id: 11, content: "testcontent2", author_id: 1 }]);
        store.load(App.User,{ id: 1, username: "supervisor"});
    }
</script>

ApplicationRouteでは、ストアをパラメータとしてプリロード関数を呼び出します。

App.ApplicationRoute = Ember.Route.extend({
    setupController: function(controller, model) {
        window.preload(this.store);
    }
});

このようにして、アプリケーションの初期化時に行われる要求の量を減らします。

于 2013-04-04T12:22:54.667 に答える
3

使用するアダプターに関係なく、いつでもデータをストアに直接ロードできます。例えば、

App.Store = DS.Store.extend({
    init: function() {
        this._super();
        this.load(App.Post, {
            id: 1,
            text: 'Initial post.'
        });
    }
});

App.Post = DS.Model.extend({
  text: DS.attr('string')
});

完全な例については、このjsfiddleを参照してください。

于 2013-03-09T22:51:22.227 に答える