遇到一个越来越令人沮丧的奇怪问题
场景:我有一个域对象列表,每个域对象都有一个附加到它的g:select,由远程字段呈现。
如何将状态变量或personInstance ID绑定到选择框,以便在使用renderField时更新testDiv_(数字)
查看:
<g:each in="${listOfPeople}" status="i" var="personInstance">
<td>
Text: <g:remoteField action="getResults" controller="person" id="" update="testDiv_${personInstance.id}" paramName="search" name="getResults" value="" />
<g:each in ="${personInstance?.choices}" var="choice" status="x">
<li>${choice}</li>
</g:each>
</td>
<td>
<g:render template="renderThisTemplate"></g:render>
</td>
</g:each>
模板:
<div id="testDiv_${personInstance.id}" class="testDiv_${personInstance.id}">
<g:select id="aChoice" name="aChoice.id" from="${allChoices}" optionKey="id" value="" />
<g:actionSubmit action="addChoice" value="Add"/>
</div>
修改
我知道远程调用(ajax)正在传递testDiv_(number)的更新。问题在于模板ID并将该值分配给模板div。
答案 0 :(得分:0)
将来任何人都需要这个答案。显然你不能在模板中引用g:each中的实例变量(personInstance)。
所以我用它的代码替换了g:render,它起作用了:
<g:each in="${listOfPeople}" status="i" var="personInstance">
<td>
Text: <g:remoteField action="getResults" controller="person" id="" update="testDiv_${personInstance.id}" paramName="search" name="getResults" value="" />
<g:each in ="${personInstance?.choices}" var="choice" status="x">
<li>${choice}</li>
</g:each>
</td>
<td>
<div id="testDiv_${personInstance.id}" class="testDiv_${personInstance.id}">
<g:select id="aChoice" name="aChoice.id" from="${allChoices}" optionKey="id" value="" />
<g:actionSubmit action="addChoice" value="Add"/>
</div>
</td>
</g:each>