ember.js – ember-data是否真的支持嵌套的URL?

前端之家收集整理的这篇文章主要介绍了ember.js – ember-data是否真的支持嵌套的URL?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个顶级会话对象,可以有很多扬声器.

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

/会话/

我可以得到所有的演讲者给一个给定的会话像这样

/会话/ 1 /扬声器/

使用当前版本的ember数据,我可以看到它正试图用这个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'),session: DS.belongsTo('CodeCamp.Session',{nested: true})
});

添加了“嵌套:true”部分,因为我想要使用ember-data来构建所需的

/会话/%@ /扬声器/

但这没有发生 –

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

CodeCamp.Speaker.reopenClass({
  url: 'sessions/%@/speakers/'
});

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

ember数据是否支持这样的开箱即用,或者我被迫自己编写大量的代码

解决方法

{nested:true}还不是一个功能. The pull request is still open.

覆盖&使用适配器的findQuery()通过这样一个URL进行GET请求.

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

/speakers?session_id=1

猜你在找的JavaScript相关文章