简体   繁体   中英

Grails formRemote updating wrong div

Having a comment within a comment but I'm having trouble in updating via form remote in correct place

I have this code

 <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">

The problem is 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 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

Sample pictures: 在此处输入图片说明

After clicking Add comment button :

在此处输入图片说明

After refreshing the page:

在此处输入图片说明

Don't mind the miss arrangement on the last picture I have a little sorting problem which I'm gonna fix later, the problem is the formremote updating the wrong one. The last picture is just to show that the update in the database is correct

edit:

Here is the action and template

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')
}

template:

 <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>

Looks to me like your first piece of code already is used multiple times, resulting in more than one div with the id "comment" (I guess that because you have multiple textareas and thus multiple forms in your screenshots, and this would totally explain your problem).

So, if you have multiple div-tags with the same id, the formRemote places the returned html inside the first one.

Edit: damn, just noticed that this question is quite old :-/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM