使用 ember.js,如何防止对每个相关对象进行单独查询
With ember.js, how do I prevent individual queries for each related object
我有三个模型,辛迪加、用户和活动。每个集团有很多活动,每个 activity 有一个用户。我的模型如下所示:
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,我得到了该集团的活动列表,每个 activity 都有一个用户名,但每个用户都触发了对 [=34= 的单独请求] - 非常缓慢且昂贵。我想知道我是否不能在单个查询中请求用户。
我的 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.
的新手
谢谢:)
您可以旁加载聚合的相关数据。
我有三个模型,辛迪加、用户和活动。每个集团有很多活动,每个 activity 有一个用户。我的模型如下所示:
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,我得到了该集团的活动列表,每个 activity 都有一个用户名,但每个用户都触发了对 [=34= 的单独请求] - 非常缓慢且昂贵。我想知道我是否不能在单个查询中请求用户。
我的 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.
的新手谢谢:)
您可以旁加载聚合的相关数据。