単一の投稿に属するコメントのリストを表示するために、コメント機能を実装しようとしています。次に、[編集] をクリックして、1 つの投稿に属するすべてのコメントから選択したコメントを編集します。
jsfiddleを更新しました。
上記のフィドルに見られるように、選択した投稿に属するコメントを作成できます。**しかし、既存のコメントを更新することができず、コメント編集フォームにもコメントが表示されません。常に空白で、既存のコメントにはバインドされません。
editcomment をクリックすると、url はposts/2/comments/undefined/editになります。これは、EmBlog.PostCommentRoute と PostEditCommentRoute がまだ null を返すためです。
コメントアウトされたコードはすべて、それを機能させるためのさまざまな試みであり、失敗しました。私はそれらをここに残したので、質問を見ている人なら誰でも私がこれまでに試したことを知ることができます.
常に null を返し、問題を引き起こしている可能性が最も高い 2 つのルート
EmBlog.PostEditCommentRoute = Ember.Route.extend({
model: function(params) {
var commentEdit = this.modelFor('post').get('comments');
return commentEdit.get(params.comment_id);
//return EmBlog.Comment.find({post: post.get('id'), id: params.comment_id});
//var comment = this.modelFor('post').get('comments');
//return comment.filterProperty('id', params.comment_id);
},
setupcontroller: function( controller, model) {
controller.set('content', model);
}
});
単一の投稿を表示するコメント ルート
EmBlog.PostCommentRoute = Ember.Route.extend({
model: function(params){
comment = this.modelFor('post').get('comments');
// comment = EmBlog.Comment.find(params.comment_id);
return comment.get(params.comment_id);
// return comment.filterProperty('body', params.comment_id);
},
setupController: function(controller, model) {
//var comment = this.controllerFor('postComments').get('body');
//controller.set('content', comment.filterProperty('body', model));
controller.set('content', model);
},
});
これがルーターです。ネストの他の組み合わせを試しましたが、コメントを追加できる唯一のバージョンだったので、これに落ち着きました。そのため、この質問はネストされた動的セグメントの更新のみに焦点を当てています。それ以外の場合は、両方について尋ねていました。
EmBlog.Router.map(function() {
this.resource("posts", {path: '/posts'}, function(){
this.route('new');
this.resource('post', {path: '/:post_id/'}, function(){
this.route('edit', {path: '/edit'});
this.route('comments', {path: '/comments'});
this.route('newComment');
this.route('comment', {path: '/comments/:comment_id'});
this.route('editComment', {path: '/comments/:comment_id/edit'});
});
});
});