0

ますますイライラする奇妙な問題に遭遇する

シナリオ: ドメイン オブジェクトのリストがあり、それぞれに ag:select がアタッチされており、リモート フィールドによってレンダリングされます。

ステータス変数または personInstance ID を選択ボックスに結び付けて、renderField を使用するときに testDiv_(number) を更新するにはどうすればよいですか

意見:

<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 に割り当てることです。

4

1 に答える 1

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>
于 2012-06-04T20:42:48.237 に答える