Grails formRemote更新错误的div

时间:2015-12-14 08:44:51

标签: grails grails-2.0 gsp grails-3.0

在评论中发表评论,但我在通过表格遥控器在正确的位置进行更新时遇到问题

我有这段代码

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

1 个答案:

答案 0 :(得分:0)

在我看来,你的第一段代码已被多次使用,导致多个div带有id“comment”(我猜是因为你有多个textareas,因此你的截图中有多个表单,这就是完全解释你的问题)。

因此,如果你有多个具有相同id的div标签,formRemote会将返回的html放在第一个。

编辑:该死的,只是注意到这个问题很老了: - /