2

[更新]

感谢你目前的帮助。

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

    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'),

我也设置了我CommentsControllerneeds: "post"

我也尝试添加:

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

我读了一篇文章,声明的动作也应该在路由中定义,我需要在 ? 中定义我的addComment函数PostRoute

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

我在正确的轨道上吗?感觉就像我在黑暗中对扫帚壁橱里的一头大象开枪,但仍然失踪​​......

4

2 回答 2

0

尝试这个

在保存记录时在后控制器中使用它

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

然后在评论控制器中

 var post = this.get('comment').create();
于 2014-03-19T14:44:38.217 回答
0

I use Ember-Model with built-in RESTAdapter, but should be compatible with your adapter:

// 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()

To save, I use

post.save()

Since I am embedding the comments inside the post. If you're not, try call save() on comment object you've created:

comment.save()
post.save()
于 2013-09-12T19:03:30.680 回答