私は、従来の1対多の関係を持つ単純なビューモデルを持っています。顧客には注文があります。
各行に顧客名があり、その後に注文の行が続くようなテーブルを作成しています。すべてうまく機能していますが、残念ながら同じ注文数の顧客はほとんどいないため、テーブルを作成すると横棒グラフのように見えます。
これには標準的な解決策があることは知っていますが、私は一生それを理解することができません。私が目指しているのは、すべての行に同じ量のセルを含めることです。モデルにダミーデータを入れることを検討しましたが、それは悪臭がします。可能な限り多くの注文を受け取ることはできますが、その情報を使用して統一されたテーブルを作成できるテンプレートを設計する方法がわからないようです。これが私がこれまでに持っているものです:
//#data is my ViewModel containing a few other things
<table id="ordersTable">
<!--header stuff-->
<tbody>
{{for #data.Customers tmpl='tmplRow' /}}
</tbody>
// OrderRow.tmpl.html
{{if #index % 2 == 0}}
<tr class="tableRowAlt1">
{{else}}
<tr class="tableRowAlt2">
{{/if}}
<td>{{>Name}}</td>
<td></td>
{{for Orders }}
<td>
{{>OrderId}}
</td>
{{/for}}
</tr>
編集:列の数を強制することにしましたが、新しいテンプレートで奇妙な動作が発生しています:
// OrderRow.tmpl.html
{{if #index % 2 == 0}}
<tr class="tableRowAlt1">
{{else}}
<tr class="tableRowAlt2">
{{/if}}
<td>{{>Name}}</td>
<td>
{{>Order[0].Id}}
</td>
<td>
{{>Order[1].Id}}
</td>
<!--...-->
</tr>
「Order.0がnullであるか、オブジェクトではない」とレンダリングされます。すべての行にデータが含まれていることを確認しましたが、テンプレートにはデータが含まれていないと見なされます。これは、配列要素を探しているという事実と関係があると思いますが、jsRenderが受け入れる方法でインデックスによって要素にアクセスする方法がわかりません。