Cod*_*oet 8 ember.js ember-data
我的应用程序后端有几个资源.为每个资源公开模型.
所有其他资源的入口点都是通过User
模型.我的意思是,User
我们可以找到BlogPost
.鉴于BlogPost
我们可以找到Comments
等
在Ember术语中,我们可以说:
User hasMany BlogPost
BlogPost hasMany Comment
Comment belongsTo BlogPost
Run Code Online (Sandbox Code Playgroud)
通过后端公开表单的REST API:
GET /api/v1/users/1
GET /api/v1/users/1/blog_posts/1
GET /api/v1/users/1/blog_posts/1/comments/1
Run Code Online (Sandbox Code Playgroud)
我正在试图弄清楚如何使用Ember Data来获取Comment
属于某个特定 BlogPost
属性User
.
从我看到的,如果我定义一个典型的Ember模型Comment
:
App.Comment = DS.Model.extend({
...
blogPost: DS.belongsTo('App.BlogPost')
});
Run Code Online (Sandbox Code Playgroud)
在CommentRoute
我有以下内容:
var CommentRoute = MessageRoute.extend({
model: function(params) {
this.store.find('comment')
},
Run Code Online (Sandbox Code Playgroud)
请求将发送至:
/api/v1/comments
Run Code Online (Sandbox Code Playgroud)
我甚至不知道从哪里开始,以便Ember Data使用以下形式的网址:
GET /api/v1/users/1/blog_posts/1/comments/1
Run Code Online (Sandbox Code Playgroud)
我已经看到了几个类似的问题(见下面的链接),但没有看到任何一个明确的答案.当ember-data可能没有这样的功能时,它们中的大多数已经差不多一年了(或者在其中一些线程中声称这样).
我再次要求确认ember-data是否具有此类功能.
类似问题:
处理它的最好方法是使用链接。如果您不想这样做,那么它远不受支持,并且很难入侵(管道只是不容易传递信息)。就我个人而言,我建议在这种情况下滚动您自己的适配器(没有 Ember 数据的 Ember)。
App.Foo = DS.Model.extend({
name: DS.attr('string'),
bars : DS.hasMany('bar', {async:true})
});
App.Bar = DS.Model.extend({
foo: DS.belongsTo('foo'),
});
Run Code Online (Sandbox Code Playgroud)
格式:
{
id: 1,
name: "bill",
links: {
bars: '/foo/1/bars'
}
}
Run Code Online (Sandbox Code Playgroud)
示例: http: //emberjs.jsbin.com/OxIDiVU/971/edit