2013-10-16 164 views
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擷取來自一個集合不同的值,則聽證其中包含了從獲取聽力entity.Hearing實體記錄微風查詢結果的observableArray得到了一個集合屬性在淘汰賽結合

public ICollection<Appeal> Appeals { get; set; } 

這就是爲什麼我使用另一個foreach:呼籲在我的HTML從該實體獲取CaseId。但是上訴集合可以具有相同CaseId的多個條目。

如何從Appeals集合中顯示CaseId的不同值?

回答

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>