<tbody data-bind="foreach: hearings">
<tr>
<td data-bind="text: ID"></td>
<td data-bind="foreach:Appeals">
<span data-bind="text:CaseId">
</span>,
</td>
</tr>
</tbody>
在上面的HTML中,听证会是一个observableArray,它包含从听证实体获取记录的微风查询的结果。听觉实体有一个集合属性
public ICollection<Appeal> Appeals { get; set; }
这就是为什么我使用了另一个foreach:在我的html中上诉以从该实体获取CaseId。但是上诉集合可以有相同CaseId的多个条目。
如何从Appeals集合中仅显示CaseId的不同值?
答案 0 :(得分:2)
假设Appeals
和CaseId
是可观察的,您将创建一个计算的observable来提取CaseId
值并返回一组不同的值:
this.distinctCaseIds = ko.computed(function() {
var caseIds = ko.utils.arrayMap(this.Appeals(), function(appeal) {
return appeal.CaseId();
});
return ko.utils.arrayGetDistinctValues(caseIds);
}, this);
然后您可以非常简单地绑定到此列表:
<td data-bind="text: distinctCaseIds().join()"></td>