2015-12-14 3 views
1

Имея комментарий внутри комментария, но у меня возникают проблемы при обновлении через форму удаленного в правильном местеGrails formRemote обновление неправильно DIV

У меня есть этот код

<div id="comment"> 
     <g:render template="comment" var="comment" collection="${review.comment}" /> 
</div> 
<g:formRemote class="ui comment form" name="commentForm" 
      url="[controller: 'game', action: 'addComment']" update="comment"> 

Проблема заключается в том it's updating correctly in the database. but In the view it is only updating in the top most parent comment and not the correct comment

Примеры фотографий: enter image description here

После нажатия кнопки Добавить комментарий:

enter image description here

После обновления страницы:

enter image description here

Не возражаете расположение промаха на последней картинке у меня есть небольшая проблема сортировки который я собираюсь исправить позже, проблема заключается в обновлении formremote. Последняя картина просто показать, что обновление в базе данных является правильным

редактировать:

Вот это действие и шаблон

def addComment(){ 
    gameService.addComment(params.comment, params.gameId, params.userId, params.reviewId) 
    def comment = gameService.listComment(params.gameId,params.reviewId) 
    render(template: 'comment', collection: comment, var: 'comment') 
} 

шаблона:

<div class="comment"> 
<a class="avatar"> <img 
    src="${createLink(controller:'user', action:'avatar_image', id:"${comment.user.id}")}" /> 
</a> 
<div class="content"> 
    <g:link class="author" controller="user" action="userProfile" 
     params="${[userId:"${comment.user.id}"]}"> 
     ${comment.user.name } 
    </g:link> 
    <div class="metadata"> 
     <span class="date"> ${comment.date } 
     </span> 
    </div> 
    <div class="text"> 
     ${comment.comment } 
    </div>  
</div> 

+0

вы должны показать действие контроллера, и содержимое шаблона. – quindimildev

+0

Вместо того, чтобы загружать целые div, мы не можем просто загрузить комментарий, который вы сделали после его сохранения в базе данных, а затем открыть другую текстовую область или просто удалить существующую текстовую область. Это также улучшит производительность вашей страницы. –

+0

Как мне загрузить только один комментарий? –

ответ

0

Выглядит как ваша первая пьеса кода уже используется несколько раз, в результате получается более одного div с id «comment» (я предполагаю, что, поскольку у вас есть несколько текстовых полей и, следовательно, несколько форм на ваших снимках экрана, и это полностью объяснит вашу проблему).

Итак, если у вас есть несколько div-тегов с одним и тем же идентификатором, formRemote помещает возвращаемый html внутри первого.

Edit: блин, только заметил, что этот вопрос довольно старая: -/

Смежные вопросы