10

その下に多くのスピーカーを持つことができるトップ レベルのセッション オブジェクトがあります。

RESTっぽいエンドポイントを使用すると、すべてのセッションを取得できます

/セッション/

このように、特定のセッションのすべてのスピーカーを取得できます

/セッション/1/スピーカー/

ember-data の現在のバージョンでは、この URL を持つすべてのスピーカーを見つけようとしていることがわかります

/スピーカー/

以下のデータモデルの使用

CodeCamp.Session = DS.Model.extend({
  id: DS.attr('number'),
  name: DS.attr('string'),
  speakers: DS.hasMany('CodeCamp.Speaker',{nested: true})                                                          
});

CodeCamp.Speaker = DS.Model.extend({
  id: DS.attr('number'),
  name: DS.attr('string'),
  session: DS.belongsTo('CodeCamp.Session',{nested: true})
});

「nested:true」の部分を追加したのは、ember-data に必要な

/セッション/%@/スピーカー/

しかし、これは起こりませんでした -

URLを手動で定義できることを知っています

CodeCamp.Speaker.reopenClass({
  url: 'sessions/%@/speakers/'
});

ただし、そうする際には、ベース REST アダプターで独自の「buildURL」メソッドをロールする必要があるため、このような形式を探し、必要に応じて親 ID を追加します (可能であれば、これを実行したくありません)。

ember-data はそのままでこのようなものをサポートしていますか、それとも自分で大量のコードを書かなければなりませんか?

4

1 に答える 1

7

{nested: true}はまだ機能ではありません。プル リクエストはまだ開いています。

findQuery()このような URL で GET リクエストを行うには、アダプタをオーバーライドして使用します。

また、サーバーが Rails の場合 (これは他のフレームワークでも機能する可能性があります)、親 ID をクエリ文字列パラメーターとして渡すことで、リクエスト URL を単一レベルに保つことができます。

/speakers?session_id=1
于 2012-10-07T01:30:48.873 に答える