1

私のルート用に生成されたリクエストは ですがhttp://api.myApp.com/tags/123/products、パフォーマンスを向上させるためにサイドローディングを行う必要があります。望ましい XHR は次のようになります。

http://api.myApp.com/tags/123/products?include=sideload1,sideload2,sideload3

私のルーターは次のようになります。

  this.route('tags', function() {
    this.route('tag', { path: ':id' }, function() {
      this.route('products', function() {

      });
    });
  });

製品のいくつかの非同期モデルをサイドロードしたいと思います。現在、次のものがあります。

// app/routes/tags/tag/products.js

model() {
    return this.modelFor('tags.tag').get('products');
}

ルートにクエリ パラメータを追加するにはどうすればよいですか?

4

1 に答える 1

1

私はプロジェクトで似たようなことをしてstore.query(type, { query });おり、私のために働いています。http://emberjs.com/blog/2015/06/18/ember-data-1-13-released.html#toc_query-and-queryrecord

store.queryモデルを定義して渡すときに試してみてください

{include: "sideload1,sideload2,sideload3"}

別のオプションとして、モデル用のアダプターを作成し、それを使用buildURLしてクエリ パラメーターを追加することもできます。ただし、これは少しハックであり、API が JSON API 標準に従っている場合は必要ありません。

App.TagsAdapter = DS.JSONAPIAdapter.extend({
    buildURL: function(type, id) {
        var baseURL = 'http://api.myApp.com/tags/123/products';
        var method = '?include=sideload1,sideload2,sideload3';

        return baseURL + method;
    }
});
于 2015-07-21T20:32:19.337 に答える