Я пытаюсь реализовать комментарий, чтобы отобразить список комментариев, относящихся к одному сообщению. Затем нажмите «Изменить» и отредактируйте любой из выбранных комментариев из всех комментариев, принадлежащих одному сообщению.
Обновлен jsfiddle.
Я могу создать комментарий, принадлежащий выбранному сообщению, как показано в скрипте выше. **Однако я не могу обновить существующий комментарий, а форма редактирования комментария даже не отображает комментарий. Он всегда пуст и не привязан ни к какому существующему комментарию.
Нажав на editcomment, вы увидите URL-адрес posts/2/comments/undefined/edit. Это связано с тем, что EmBlog.PostCommentRoute и PostEditCommentRoute по-прежнему возвращают значение null.
Весь закомментированный код — это различные неудачные попытки заставить его работать. Я оставил их здесь, чтобы любой, кто смотрит на вопрос, знал, что я пробовал до сих пор.
Два маршрута, которые всегда возвращают значение null и, скорее всего, вызывают проблему
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'});
});
});
});