【问题标题】:Setup async hasMany relationship with default scoped url.设置 async hasMany 与默认作用域 url 的关系。
【发布时间】:2014-10-28 00:24:50
【问题描述】:

我试图优化我的应用程序。我有一个模型Job 有很多Todos。从后端获取所有作业效率不高,因为目前我正在序列化所有的 todo_ids 有很多关系。在我看来,ember-data 应该能够以使用 job_id 作为外键的方式设置 hasMany 关系。

export default DS.Model.extend({
  name: DS.attr('string'),
  todos: DS.hasMany('todo', {async: true})
})

如何设置todos 关系,使网址默认为类似。

job = this.store.find('job',1) //api/jobs/1
job.get('todos') //api/todo?job=1

【问题讨论】:

  • 当你让它异步为真时。 Ember 会在获取作业后自动进行查询。查询的 URL 可能如下所示 /todos?ids=[1,2,7,8] 其中 1,2,7 和 8 个 todo_ids 用于获取的作业
  • 是的,这是低效的部分。当您可以按 job_id 过滤时,IMO 没有必要序列化所有 todo_ids。就像描述的jsonapi.org/format/#urls-relationships
  • 好点。我希望这在未来的 ember 数据版本中得到实施。

标签: ember.js ember-data


【解决方案1】:

核心团队已经讨论过这个问题。 https://github.com/emberjs/data/issues/2162

我也创建了一个拉取请求来实现它。 https://github.com/emberjs/data/pull/2435.

当前的解决方案是覆盖序列化程序 normalizePayload 挂钩并构建链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2014-12-30
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多