0

私は Ember Data の初心者で、FIXTURE データから RESTAdapter に切り替えたばかりですが、モデルと API の呼び出しシグネチャを接続する方法について十分に知りません。具体的には、 endpoint を呼び出せるようにしたいと考えていますGET /activities/[:user_id]/[:by_date]。これにより、「アクティビティ」オブジェクトの配列がロードされますが、特定の日付のオブジェクトのみがロードされます。

ルーター:

this.resource('activities', { path: '/activities' }, function() {
    this.route('by_date', {path: '/:user_id/:by_date'});
});

ルート:

App.ActivitiesByDateRoute = Ember.Route.extend({  
    serialize: function(activity) {
      return {
        userId: 1,
        dateBy: "2013-07-01"
      };
    }     
});

最初に、上記の Route の値をハードコーディングして調整しようuserIdとしました。dateBy悲しいことに、それはうまくいきませんでした。理由は理解できたと思いますが、これを簡単に修正する方法はありませんが、URL: にパラメータを手動で入力したときのほうが気がかりでしたhttp://restful.service.com/api/activities/1/2013-07-01。結果は私にとって非常に驚くべきものです:

  • 最初のデバッグ メッセージは成功を示唆しています。
  • ただし、実際にはネットワーク リクエストが行われないため、これは正しくありません。
  • ブラウザをリロードすると、アクティビティが表示されますが、驚いたことに、指定されたユーザーも検索されます。うーん。ユーザー 1 は正常に引き戻されました。
  • GET /activitiesただし、アクティビティは、このエンドポイントが機能するためにユーザーと日付修飾子が必要なため、失敗する単なる呼び出しです。これらがリクエストに含まれていなかったのはなぜですか?
4

1 に答える 1

0

emberデータが「複合キー」をサポートしているとは思わない(これは本質的にあなたがやろうとしていることです)。おそらく、その特定のモデル用に独自の Ajax を構築し、その特定のルートのモデル フックに実装する必要があります。ember データモデルが必要な場合は、いつでもデータを取得して ember-data にサイドロードできます。

于 2013-08-10T21:44:52.523 に答える