0
 <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; }

这就是为什么我在我的 html 中使用另一个 foreach:Appeals 来从该实体获取 CaseId。但是上诉集合可以有多个相同 CaseId 的条目。

如何仅显示 Appeals 集合中 CaseId 的不同值?

4

1 回答 1

2

假设AppealsCaseId是可观察的,您将创建一个计算的可观察来提取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>
于 2013-10-16T21:15:04.987 回答