儿童记录和余烬模型

时间:2013-09-12 18:57:05

标签: ember.js firebase ember-model

[更新]

感谢您的帮助。

我已经能够使用带有静态数据的嵌入式评论记录创建新的Post记录。通过这种方法:

    App.CommentsController = Ember.ArrayController.extend({
      needs: "post",

      actions: {

         addComment: function() {
              var post = App.Post.create({
                title: 'static post'
              });

                  post.get('comments').create({
                    message: 'static message'
                });

                  post.save();

          }

      }

    });

但我不知道如何通过CommentsController或Route检索当前的帖子,以便在现有帖子上创建评论记录。

在搜索并筛选随机的SO和文章后,我尝试了一系列方法来调用当前的帖子,但仍然没有骰子。

我已尝试将var post = App.Post.create设置为:

var post = App.Post.find(), 
var post = this.get('controllers.post.model'),
var post = this.get('controllers.post.content'),
var post = this.get('controllers.post'),
var post = this.get('post'),

我还将CommentsController设为needs: "post"

我还尝试添加:

    App.CommentsRoute = Ember.Route.extend({
        afterModel: function() {
            this.set('post', this.modelFor('post'));
        }
    });

我读了一篇文章,说明行动也应该在路线中定义,我是否需要在addComment中定义我的PostRoute函数?

我想知道我是否需要使用var post = App.Post.find(post)或类似的东西。

我在这里走在正确的轨道上吗?感觉就像我在扫帚壁橱里的大象黑暗中拍摄,但仍然失踪​​......

2 个答案:

答案 0 :(得分:0)

我使用内置RESTAdapter的Ember-Model,但应该与你的适配器兼容:

// to add a post
var post = App.Post.create() // assuming your App.Post is your model class
// to add a comment inside it
var comment = post.get('comments').create()

要保存,我使用

post.save()

因为我在帖子中嵌入了评论。如果不是,请尝试在您创建的评论对象上调用save():

comment.save()
post.save()

答案 1 :(得分:0)

试试这个

保存记录时,在post控制器中

使用此

post.save().then(function(post)     {self.transitionToRoute('comment.create', record);});

然后在评论控制器

 var post = this.get('comment').create();