Ember模型正确方式发布和注释异步

时间:2015-03-03 04:58:57

标签: ember.js ember-data

我有一个初始页面,显示所有帖子。 发布尽可能多的评论,但在这个初始页面我不想显示评论。当用户点击帖子时,应用程序会转到此页面中的url posts / post / 1我想显示帖子的评论。

我的服务器有这个端点

我的服务器应为/ posts和/ comments或posts /:id / comments /?

提供分隔端点

获取(获取或查找)的正确方法是什么/如何?

模型

// Post
export default DS.Model.extend({
  message: DS.attr('string'),
  comments: DS.hasMany('comment'),
});

// Comment
export default DS.Model.extend({
  message: DS.attr('string'),
  post: DS.belongsTo('post'),
});

2 个答案:

答案 0 :(得分:0)

最好的解决方案是让您的服务器返回评论以及帖子 - 称为“sideloading”。

所以,如果您在/ post / 1上调用了GET并且该帖子有1,2和3的注释,则返回的JSON将包含“post”以及这三个注释

答案 1 :(得分:0)

当您导航到该网址“posts / post / 1”时,您可以获得动态细分值,即您的情况。 在您的模型钩子(在后期路线中)中查找具有该动态段值的注释 例如:

 model: function() {
    return this.store.find("comments", post_id);
}

在您的控制器中,您可以通过
访问此模型     var temp = this.get('model');