我有一系列的对象被显示在一个表中。对象的两个属性是“isGroup”,一个布尔值,如果该帐户是组的一部分则返回true,而“groupName”返回一个字符串。按特定属性对项目进行排序knockout.js
我试图实现的是一个表,它列出了第一个不属于组的组成部分的所有帐户,后面跟着特定组中所有帐户的组列表,其中组名列出一次在每个块的顶部。
我是一个淘汰赛初学者,我到目前为止是这样的:
<tbody data-bind="foreach: dashboard.widgets.modelPortfolio.models">
<!-- ko if: isGroup === false -->
<tr data-bind="if: isGroup === false">
<td class="labelCol"><span data-bind="text: accountName"></span></td>
<td class="col"><span data-bind="text: modelName"></span></td>
<td class="col"><span data-bind="text: driftPercentage"></span></td>
</tr>
<!-- /ko-->
<!-- ko if: isGroup === true -->
<tr>
<td class="labelCol"><b><span data-bind="text: groupName"></span></b></td>
<td class="col"><span data-bind="text: modelName"></span></td>
<td class="col"><span data-bind="text: driftPercentage"></span></td>
</tr>
<tr>
<td class="labelCol"><b><span data-bind="text: accountName"></span></b></td>
<td class="col"></td>
<td class="col"></td>
</tr>
<!-- /ko -->
</tbody>
它显示这是一组的一部分,每个账户上面的组名的标题,所以我的问题是:
1)让它每个组只显示一次,并且 2)让属于每个组的所有帐户都显示在该组下。
没有可能的组数。 从我的研究到目前为止,我已经看到一个名为arrayGetDistinctValues的util,我认为它可能有用。
你可以发布你的视图模型代码,以帮助理解多一点?我觉得应该可以使用一个或两个[Computed Observables](http://knockoutjs.com/documentation/computedObservables.html) – 2014-11-03 19:21:14