【问题标题】:With ember.js, how do I prevent individual queries for each related object使用 ember.js,如何防止对每个相关对象进行单独查询
【发布时间】:2015-03-05 19:59:10
【问题描述】:

我有三个模型,辛迪加、用户和活动。每个辛迪加都有许多活动,每个活动都有一个用户。我的模型如下所示:

App.Syndicate = DS.Model.extend
  activities: DS.hasMany('activity', async: true)
  name: DS.attr 'string'

App.Activity = DS.Model.extend
  syndicate: DS.belongsTo('syndicate')
  user: DS.belongsTo('user', async: true)

App.User = DS.Model.extend
  activities: DS.hasMany('activity', async: true)

我使用显示活动

article#lead
  h1= model.name

each activity in model.activities

  p
    = activity.id
  p
    = activity.user.name

查看 syndicate/1,我得到了该集团的活动列表,每个活动都有一个用户名,但每个用户都触发了对 api 的单独请求 - 非常缓慢且昂贵。我想知道我是否不能在单个查询中请求用户。

我的reading 建议我可以简单地将 'coalesceFindRequests' 设置为 true,但这对我不起作用

DS.RESTAdapter.reopen
  namespace: 'api/v1'
  coalesceFindRequests: true

App.Store = DS.Store.extend(
  serializer: DS.RESTSerializer.extend
  primaryKey: (type) ->
    '_id';
)
App.ApplicationAdapter = DS.ActiveModelAdapter.extend()

我的路线

App.SyndicateRoute = Ember.Route.extend
  model: (params) ->
    console.log params.syndicate_id
    @store.find 'syndicate', params.syndicate_id

关于我做错了什么的任何指示?我对 ember 很陌生。

谢谢:)

【问题讨论】:

  • 连接模型的路线是什么样的?
  • 嗨@Dhaulagiri,我已经添加了我请求辛迪加的路线。我还进一步扩大了这个问题,以展示我试图建立的一对多关系。谢谢。

标签: ember.js ember-data


【解决方案1】:

您可以侧加载聚合的相关数据。

http://emberjs.com/guides/models/the-rest-adapter/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-29
    • 2017-09-16
    • 2023-02-17
    • 2021-10-14
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多