我有一个简单的具有传统一对多关系的视图模型:客户有订单。
我创建了一个表格,每行都有一个客户名称和一行订单。这一切都很好,但不幸的是很少有客户有相同数量的订单,所以建立表格最终看起来像是一个横向条形图。包含可变长度元素的表格的jsRender模板
我知道有一个标准的解决方案,但我不能为我的生活弄明白。我要做的是让每一行都包含相同数量的单元格。我曾考虑过将虚拟数据放入我的模型中,但那味道很糟糕。我可以获得尽可能多的订单,但我似乎无法弄清楚如何设计可以使用任何信息创建统一表的模板。这是我到目前为止有:
//#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>
编辑:所以我决定只强制列numbe,但现在我得到我的新一些奇怪的行为模板:
// 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为空或不是对象。”我已验证每行都有数据,但模板认为它没有。我想这与我正在寻找数组元素的事实有关,但我不确定如何通过jsRender将接受的方式按索引访问元素。