感谢您的帮助。
我已经能够使用带有静态数据的嵌入式评论记录创建新的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)
或类似的东西。
我在这里走在正确的轨道上吗?感觉就像我在扫帚壁橱里的大象黑暗中拍摄,但仍然失踪......
答案 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();