[mayaa-user:510] Re: <m:forEach>を使った2重ループ

suga [E-MAIL ADDRESS DELETED]
2007年 5月 21日 (月) 16:22:42 JST


suga です。

On 5/21/07, 藤澤 克己 <[E-MAIL ADDRESS DELETED]> wrote:
> 入れ子になっている配列をまわしながら個々の値をとりだし、
> 外側の配列で<tr>タグ(属性値に、opCodeとvalue)
> 内側の配列で<td>タグ(属性値に、procCodeとvalue)
> を作成したいと考え下にありますHTMLテンプレートとmayaaファイルを用意しましたが、
> "ReferenceError: "listProc" is not defined. in script=listProc.procCode"
> と表示され、うまく動作しません。

内側のループ用プロセッサが <m:echo m:id="M_024"> のボディとして定義されている
ためですね。
下記のようにすれば意図した動作になると思います。

-----ここから
<m:forEach m:id="loopOp" items="${form.listOp}" var="listOp"/>

<m:echo m:id="M_024">
   <m:attribute name="op_code" value="${listOp.opCode}" />
   <m:attribute name="value" value="${listOp.value}" />
</m:echo>

<m:forEach m:id="loopProc" items="${listOp.listProc}" var="listProc"/>

<m:echo m:id="M_050">
   <m:attribute name="proc_code" value="${listProc.procCode}" />
   <m:attribute name="value" value="${listProc.value}" />
</m:echo>
---- ここまで

ただ、<m:echo m:id="M_024"> のボディにある <m:doRender name="loopProc" /> が
何のためのものなのかわかりません。上の例では除外しています。
挙げられた例ではわかりませんでしたので、もしこの doRender が無いために意図した
出力が得られないようでしたら、これのための情報も教えてください。


以上、よろしくお願いします。
-- 
suga ( [E-MAIL ADDRESS DELETED] )


mayaa-user メーリングリストの案内