在尝试模拟新闻源的应用程序中,我有以下三个模型。
- Feed - {名称:字符串,帖子:hasmany(帖子模型)}
- 发布 - {文本:字符串,评论:hasmany(评论模型),提要:belongsto(提要模型)}
- 评论 - {text:string, post:belongsto(Post model)}
所有三个模型都有单独的 Rest API 用于检索有效负载。我需要能够检索数据并将它们显示在单个路由资源下。
http://emberjs.com/guides/models/the-rest-adapter/上的 RestAdapter 文档 说
可以通过 post.get('comments') 加载帖子的评论。REST 适配器将向 /comments?ids[]=1&ids[]=2&ids[]=3 发送 GET 请求。
下面的代码显示了我如何尝试做同样的事情,但我无法检索 Feed 模型中的所有数据。
var Newsfeed = Ember.Application.create();
Newsfeed.Router.map(function(){
this.route('feed', {path:'/'});
});
Newsfeed.FeedRoute = Ember.Route.extend({
model: function(){
var model = Newsfeed.Feed.find(1);
//model.set('posts', Newsfeed.Post.find()); -- This also did not work.
//posts.set('comments', Newsfeed.Comment.find());
return model;
},
setupController: function(controller, model){
controller.set('content', model);
controller.set('content.posts', model.get('posts'));
console.log(controller.get('content.posts'));
this.controllerFor('posts').set('content', model.get('posts'));
}
});
Newsfeed.PostsView = Ember.View.extend({
});
Newsfeed.PostsController = Ember.ArrayController.extend({
});
Newsfeed.FeedController = Ember.Controller.extend({
});
Newsfeed.Store = DS.Store.extend({
revision:12,
adapter: 'DS.RESTAdapter'
});
Newsfeed.Feed = DS.Model.extend({
name:DS.attr('string'),
posts:DS.hasMany('Newsfeed.Post')
});
Newsfeed.Post = DS.Model.extend({
text : DS.attr('string'),
comments:DS.hasMany('Newsfeed.Comment'),
feed:DS.belongsTo('Newsfeed.Feed')
});
Newsfeed.Comment = DS.Model.extend({
text: DS.attr('string'),
post:DS.belongsTo('Newsfeed.Post')
});
我正在使用 jquery.mockjax 来模拟 rest api。我的有效载荷是-
{ "feed" :{
id:1,
name:"Ember Web App",
posts :[1,2]
}
}
{"posts" : [{
id:1,
text:"orem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempo",
comment_ids:[1],
feed_id:1
},{
id:2,
text:"orem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempo",
comments:[2],
feed_id:1
}]
}
关于我可能在这里遗漏的任何指示?