[Seasar-user:16773] [Kumu]テンプレートを使用しネストした繰り返し出力

MACHIDA Takuya [E-MAIL ADDRESS DELETED]
2009年 1月 27日 (火) 22:48:01 JST


お世話になります。町田と申します。

Kumuのテンプレート機能を利用し行数不定、列数不定の表を
レンダリングしたいと思っております。

末尾に記述しますtext.htmlにてレンダリングされたページで、
ボタンをクリックするとtableタグの内容が以下のようにレンダリング
されることを期待しています。

=== 期待するレンダリング結果 ===
<TABLE border="1">
	<TBODY>
		<TR id="rowItems:rendered0" __id="rowItems:rendered0">
			<TD id="aaaa:rendered0" __id="aaaa">あ</TD>
			<TD id="cols:rendered0" __id="cols:rendered0">
				<SPAN id="col:rendered0" __id="col">○</SPAN>
			</TD>
			<TD id="cols:rendered0" __id="cols:rendered0">
				<SPAN id="col:rendered0" __id="col">×</SPAN>
			</TD>
			<TD id="cols:rendered0" __id="cols:rendered0">
				<SPAN id="col:rendered0" __id="col">△</SPAN>
			</TD>
			<TD id="bbbb:rendered0" __id="bbbb">い</TD>
			<TD id="cccc:rendered0" __id="cccc">う</TD>
		</TR>
	<TBODY>
</TABLE>

しかし実際に動作させてみると、以下のようにレンダリングされます。

=== 実際のレンダリング結果 ===
<TABLE border="1">
	<TBODY>
		<TR id="rowItems:rendered0" __id="rowItems:rendered0">
			<TD id="aaaa:rendered0" __id="aaaa">あ</TD>
			<TD id="bbbb:rendered0" __id="bbbb">い</TD>
			<TD id="cccc:rendered0" __id="cccc">う</TD>
			<TD id="cols:rendered0" __id="cols:rendered0">
				<SPAN id="col:rendered0" __id="col">○</SPAN>
			</TD>
			<TD id="cols:rendered0" __id="cols:rendered0">
				<SPAN id="col:rendered0" __id="col">×</SPAN>
			</TD>
			<TD id="cols:rendered0" __id="cols:rendered0">
				<SPAN id="col:rendered0" __id="col">△</SPAN>
			</TD>
		</TR>
	<TBODY>
</TABLE>

さらにボタンをクリックすると、以下のようにレンダリングされます。

=== もう一度ボタンをクリックしたレンダリング結果 ===
<TABLE border="1">
	<TBODY>
		<TR id="rowItems:rendered0" __id="rowItems:rendered0">
			<TD id="aaaa:rendered0" __id="aaaa">あ</TD>
			<TD id="cols">
				<SPAN id="col:rendered0" __id="col">○</SPAN>
			</TD>
			<TD id="bbbb:rendered0" __id="bbbb">い</TD>
			<TD id="cccc:rendered0" __id="cccc">う</TD>
		</TR>
	</TBODY>
</TABLE>

Kumu.jsの中を追えばわかるはずなのですが、お恥ずかしい話JavaScriptに
疎く追いきれません...。

まず、この挙動は仕様でしょうか?
仕様である場合、どのようなデータ、テンプレートを用意すれば期待した動作を
実現出来るか教えていただけないでしょうか?

最後に使用しているKumu.jsはteeda-ajax-1.0.13-sp4.jarより取り出したものを
使用しています。


=== test.html ===
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="./kumu.js"></script>
<script type="text/javascript">
//<![CDATA[
var o = {
	'rowItems': [
		{
			'aaaa':'あ',
			'bbbb':'い' ,
			'cols':[
				{
					'col':'○'
				},
				{
					'col':'×'
				},
				{
					'col':'△'
				}
			],
			'cccc':'う'
		}
	]
}
var templ1 = new Kumu.Template();
//]]>
</script>
</head>
<body>
<form id="testForm">
<input type="button" value= "render" onclick="templ1.render(o)" />
	<table border="1">
		<tbody>
			<tr id="rowItems">
			 	<td id="aaaa"></td>
				<td id="cols">
				 	<span id="col"></span>
				</td>
			 	<td id="bbbb"></td>
			 	<td id="cccc"></td>
			</tr>
		</tbody>
	</table>
</form>
</body></html>

以上、宜しくお願い致します。
-- 
MACHIDA Takuya


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