2014-01-29 35 views
3

我有一個html網格,每行返回一個複選框。目前,我有這些與我的視角模型淘汰賽。我已經足夠捕獲一行檢查的id,但我不知道如何讓Knockout給我一個檢查的所有行的列表以及行中每個單元格的內容。Knockout.js跟蹤選中的複選框

最終意圖是讓用戶從該表中選擇多行並導出該數據。所以我需要一個很好的方法來收集整個行。

我一直在使用Knockout大約一週,所以我試圖讓它跟蹤的東西,也許我會更好的只是通過JavaScript循環表?

<tbody data-bind="foreach: projectListing"> 
    <tr data-bind="css: $data.rowclass"> 
     <td><input type="checkbox" data-bind="value: $data.id, checked: $root.selectedRows, click: $root.toggleRowSelection"/></td> 
     <td data-bind="text: $data.SORT_ID"></td> 
     <td data-bind="text: $data.PROJ_ID"></td> 
    </tr> 
</tbody> 

*我知道,代碼是不夠的,繼續下去,但我不得不把東西在這裏,所以我可以列出一個鏈接到的jsfiddle。

我有一個小提琴,表示這代表我到目前爲止的代碼。我想用這個小提琴做什麼是每次我檢查複選框時,整行內容應該顯示出來。那會讓我到我需要在我的真實項目中的地方。

如何去這個任何想法?

這是我到目前爲止。

http://jsfiddle.net/robhortn/ad2Yu/4/

回答

2

不但得不到ID與被查綁定的,你可以創建計算來獲得所選擇項的selectedItems對象

self.selectedItems = ko.computed(function() { 
    return self.availableItems().filter(function(item) { 
     return item.Selected(); 
    }); 
}); 

的Html

Selected Books: 

<div data-bind="foreach: $root.selectedItems"> 
    <span data-bind="text: Name"></span> 
    <br/> 
</div> 

See this JSFiddle

+0

這是有道理的。如果我想要其他「字段」,例如id和價格值,我是否也可以同時獲取它們?基本上輸出所選的整個行? –

+0

明白了!我從你在這裏給出的非常清晰的例子中找出了我需要的其餘部分。謝謝! –