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