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

Appealsとがオブザーバブルであると仮定するとCaseId、計算されたオブザーバブルを作成して値を抽出し、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 に答える