2014-09-24 28 views
0

我有兩個集合父和子。對於每一個父行,我根據父記錄標識符等於子記錄標識符的條件在HTML表格中呈現子行。 HTML看起來像下面這樣:只使用敲除條件語句渲染表列一次

<tbody data-bind="foreach: $root.subGridRows"> 
      <tr data-bind="foreach: $root.subGridColumns"> 
      <!-- ko if: $parents[1][$root.parentRecordKey] === $parent[$root.childRecordKey] --> 
        <td> 
         <span data-bind="text: header"></span> 
        </td> 
      <!-- /ko --> 
      </tr> 
    </tbody> 

我想爲所有行呈現包含span元素的列一次。我無法消除上面使用的敲除條件,因爲它僅爲那些ID與父記錄ID匹配的子記錄呈現列。

+0

如果沒有相應的視圖模型代碼,您的問題確實不清楚。請編輯你的問題,並確保代碼有一個[最小代表](http://sscce.org)你的情況。 – Jeroen 2014-09-24 20:10:30

回答

0

這很難理解你的問題,但它聽起來像將foreach移出tr並進入它自己的虛擬foreach可以解決你的問題。例如:

<tbody data-bind="foreach: $root.subGridRows"> 
    <tr> 
     <td data-bind="if: $parent[$root.parentRecordKey] === $data[$root.childRecordKey]"> 
      <span data-bind="text: header"></span> 
     </td> 
     <!-- foreach: $root.subGridColumns --> 
      <td>Display other columns here</td> 
     <!-- /ko --> 
    </tr> 
</tbody> 

這可能稍微偏離,代碼未經測試,但它應該可以幫助您解決問題。