获取复选框列被选中的行 - knockout JS

Get row in which checkbox column is selected - knockout JS

我完全不熟悉 Knockout JS.I 我有一个 table,其中一列是输入类型复选框。 在 html table 的末尾,我有一个按钮作为 "Add"。 现在我想要做的是点击 "Add" 按钮,我应该能够获得所有选中复选框的行。

HTML

<table>
        <thead>
            <tr>
                <th>Add Data</th>
            </tr>
        </thead>
        <tbody data-bind="foreach: SearchResult">
            <tr>
                <td data-bind="text: Name"></td>
                <td><input type="checkbox" class="" data-bind="checked: selectedArray"/></td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <td><button type="button" id="addButton" data-bind="click: AddSelection">Add</button></td>
            </tr>
        </tfoot>
    </table>

现在谁能告诉我如何获取选中复选框列的所有行。 我经历过这个,但这对我不起作用。

fiddle供参考 http://jsfiddle.net/smsharma/u9ts4uvf/

这是更新后的 fiddle:http://jsfiddle.net/u9ts4uvf/1/

您可以创建一个 addItem 函数,它会创建一个新项目,并将其添加到数组 availableItems:

self.addItem = function() {
    var item = new BookItem(1, 'Lorem Ipsum', '[=10=].99');
    item.Selected(true);
    self.availableItems.push(item);
};

但是您还需要为复选框添加一个 checked 绑定,以确保当 BookItemSelected 设置为 true 时它们被选中:

<input type="checkbox" data-bind="value: id(), click: $root.toggleAssociation, checked: Selected" />