0

我是 Ember Data 的新手,我刚刚从 FIXTURE 数据切换到 RESTAdapter,但我对如何连接模型和 API 的调用签名知之甚少。具体来说,我希望能够调用端点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 的值进行硬编码userIddateBy进行调整。可悲的是,这没有奏效。我想我明白为什么——虽然我没有快速的方法来解决这个问题——但对我来说更令人不安的是,当我手动将参数放入 URL: 时http://restful.service.com/api/activities/1/2013-07-01。结果让我很惊讶:

  • 最初调试消息表明成功:
  • 然而,这是不正确的,因为实际上没有发出网络请求
  • 如果您重新加载浏览器,它现在会出去并获取活动,但令我惊讶的是,它也会出去寻找指定的用户。嗯。没关系,用户1被拉回成功。
  • 然而,Activity 只是一个GET /activities失败的调用,因为该端点需要用户和日期限定符才能工作。为什么这些不包括在请求中?
4

1 回答 1

0

我不认为 ember 数据支持“复合键”(这本质上是你想要做的)。您可能需要为该特定模型构建自己的 Ajax,并在该特定路由的模型挂钩中实现它。如果您想要一个 ember 数据模型,您可以随时获取数据并将其加载到 ember-data 中。

于 2013-08-10T21:44:52.523 回答