使用ember.js,如何防止对每个相关对象进行单独查询

时间:2015-03-05 19:59:10

标签: ember.js ember-data

我有三个模型,辛迪加,用户和活动。每个辛迪加都有许多活动,每个活动都有一个用户。我的模型看起来像这样:

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'是真的,但这对我没有用

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

关于我做错的任何指示?我非常陌生。

谢谢:)

1 个答案:

答案 0 :(得分:1)

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

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