ember-data真的支持嵌套的URL吗?

Tor*_*ups 10 ember.js ember-data

我有一个顶级会话对象,下面可以有很多发言者.

我的REST ish端点允许我像这样获得所有会话

/会话/

我可以像这样得到给定会话的所有发言者

/会话/ 1 /扬声器/

使用当前版本的ember-data,我可以看到它正在尝试使用此url查找所有扬声器

/扬声器/

使用下面的数据模型

CodeCamp.Session = DS.Model.extend({
  id: DS.attr('number'),
  name: DS.attr('string'),
  speakers: DS.hasMany('CodeCamp.Speaker',{nested: true})                                                          
});

CodeCamp.Speaker = DS.Model.extend({
  id: DS.attr('number'),
  name: DS.attr('string'),
  session: DS.belongsTo('CodeCamp.Session',{nested: true})
});
Run Code Online (Sandbox Code Playgroud)

我添加了"嵌套:true"部分,因为我想要构建所需的ember-data

/会话/%@ /扬声器/

但这没有发生 -

我知道我可以手动定义一个URL

CodeCamp.Speaker.reopenClass({
  url: 'sessions/%@/speakers/'
});
Run Code Online (Sandbox Code Playgroud)

但是这样做我需要在基础REST适配器中滚动我自己的"buildURL"方法,以便它查找这样的格式并在必要时添加父ID(如果可能的话我宁愿不这样做)

ember-data是否支持这样的开箱即用或者我自己会被迫编写大量代码?

Mar*_*ars 7

{nested: true}还不是一个功能.拉取请求仍然是打开的.

覆盖并使用适配器findQuery()来使用这样的URL发出GET请求.

此外,如果您的服务器是Rails(并且可能适用于其他框架),则可以通过将父ID作为查询字符串参数传递来保持请求URL的单级别:

/speakers?session_id=1
Run Code Online (Sandbox Code Playgroud)