我的搜索没有找到满意的答案,所以我想我会在这里问。
我目前正在使用Ember.Js,Ember-Data和Ember-Firebase-Adapter,并试图创建一个CRUD应用程序,它将创建一个父记录,然后创建后续子记录到所述父记录。
(请注意,DS.Firebase.LiveModel是Firebase适配器,相当于DS.Model / Ember.Model)
以下是我的模型,改为通用的帖子/评论类型
App.Post = DS.Firebase.LiveModel.extend({
name: DS.attr('string'),
body: DS.attr('string'),
date: DS.attr('date'),
comments: DS.hasMany('App.Comment', {embedded: 'always'})
});
App.Comment = DS.Firebase.LiveModel.extend({
message: DS.attr('string'),
timestamp: DS.attr('string'),
post: DS.belongsTo('App.Post', {key: "post_id"})
});
(我的post_id
= post
?)
这是我创建Comments
的路线:
App.PostsCommentRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('content', App.Comment.find());
}
});
这是PostsCommentRoute
的控制器:
App.PostsCommentController = Ember.ObjectController.extend({
newMessage: null,
newTimestamp: null,
saveComment: function() {
App.Pbp.createRecord({
message: this.get('newMessage'),
timestamp: this.get('newTimestamp')
})
App.store.commit();
this.set('newMessage', null);
this.set('newTimestamp', null);
}
});
我想我可能会错过序列化程序?我在addArray
上读过几件事情,但我试图插入的东西并没有多大成果。因为我的评论很好,但是在我的JSON中它们与帖子无关。
创建的Comments
是否有办法找到相关的Post_Id
,然后在创建时与Post
关联?所以我的Post
JSON有一个Comment_Ids
数组,然后允许它们与帖子一起显示?
我们非常感谢任何帮助,或者提供良好示例的链接。我知道这是一个相对简单的窘境,但我已经坚持了一段时间了:p
答案 0 :(得分:4)
你可以尝试做的是这个
post = App.Post.find(1);
post.get('comments').pushObject(App.Comment.createRecord({})); //This will add a new comment to your post and set the post_id as the post id
App.store.commit()
希望有所帮助