Ember.js 余烬数据中的筛选数组和自()功能

Ember.js 余烬数据中的筛选数组和自()功能,ember.js,ember-data,Ember.js,Ember Data,我有一个包含用户活动的后端资源,在应用程序中,我希望根据一天的活动来呈现活动。我在路由器中定义了一个名为“活动控制器”的ArrayController,如下所示: this.resource('activities', { path: '/activities/:by_date' }, function() { this.route('new'); }); REST API提供以下GET方法: GET /activities/[by_date] 到目前为止,这看起来相当对称,而且可以

我有一个包含用户活动的后端资源,在应用程序中,我希望根据一天的活动来呈现活动。我在路由器中定义了一个名为“活动控制器”的
ArrayController
,如下所示:

this.resource('activities', { path: '/activities/:by_date' }, function() {
    this.route('new');
});
REST API提供以下GET方法:

GET /activities/[by_date]
到目前为止,这看起来相当对称,而且可以实现,但我遇到了两个问题:

  • 参数化数组查找。通常,参数化路由将由
    ObjectController
    提供服务,但在这种情况下,
    by_date
    参数只是减少/过滤活动数组,但它仍然是返回的数组。我不知道如何在
    ActivitiesRoute
    中的模型钩子中构造它,以便它有效地执行“findAll”,而不是期望一个单一的结果集
  • 自功能以来。由于带回这些活动阵列会产生合理的网络成本,我希望尽可能地将其最小化,REST API支持这一点,允许将
    ,因为
    参数与上次请求的日期一起传递。这样,如果自上次调用以来没有更新任何记录,并且如果有新记录,则只返回新记录,则服务器只需响应
    304
    代码。有没有办法用余烬数据“开箱即用”呢?这是否需要构建自定义适配器?如果有,是否有可用的开源解决方案

  • p、 我在想#2的部分答案可能是加入Alex Speller的查询参数:

    您的路线模型挂钩是什么样子的?我在想,这样的办法应该行得通:

    model: function(params) {
      return this.store.find('activity', { by_date: params.by_date });
    }
    

    更详细地看一下查询参数,我不太相信它会解决我的“自”问题,因为它似乎与URL有很强的联系,而在我的例子中,我实际上并不想要这个URL。这并不能解决自功能。至于参数化数组查找。。。是的,我想在某种程度上是这样的,但我不喜欢的是,它总是返回到服务器来检索数据。我想我可以围绕它构建一些逻辑,通过将返回的id缓存到SessionStorage,让它表现得更好。让我仔细考虑一下,明天我会在这里回复。谢谢你推回到这个解决方案,因为我跳过它可能太快了。@ken好吧,你可以手动添加一个since参数,但这不是“开箱即用”的。看起来EmberData确实有一个sinceToken,它作为
    since
    传递到服务器,但我不确定如何使用它。非常有趣的是
    since
    参数。。。我想知道我是否应该在对话讨论中问这个问题,或者作为一个问题。