Я использую наблюдаемый массив нокаута для привязки таблицы html, как это
<div>
<button data-bind='click: update'>Get Data</button>
</div>
<div id="divLanguage" style="overflow: hidden;">
<table style="width: 760px;">
<tr>
<td style="padding: 0px;width: 100px;font-weight: bold">name</td>
<td style="padding: 0px;width: 70px;font-weight: bold">select</td>
</tr>
</table>
<div id="language" style="overflow: auto;height: 540px;">
<table id="Table1" class="gridHover" style="width: 760px;">
<tbody data-bind="foreach: queryResult">
<tr>
<td style="padding: 0px;text-align: left;width: 100px" data-bind="text: name"></td>
<td style="padding: 0px;text-align: left;width: 70px">
<input type="checkbox" />
</td>
</tr>
</tbody>
</table>
</div>
The view model is
var initialData = [{
id: 1,
name: "Well-Travelled Kitten",
sales: 352,
price: 75.95,
whatever: 10
}, {
id: 2,
name: "Speedy Coyote",
sales: 89,
price: 190.00,
whatever: 100
}, ];
function viewModel() {
var self = this;
self.queryResult = ko.observableArray();
this.update = function (data) {
//this is an ajax call and return dateset back
$.each(initialData, function (index, item) {
self.queryResult.push(item);
});
};
}
ko.applyBindings(new viewModel());
Вы можете видеть, что флажок не привязан ни к какому полю. Я знаю, что мы можем использовать проверенную привязку для привязки данных к флажку. Проблема в том, что я не могу привязать флажок к любому столбцу, потому что я буду получать информацию на лету. В наблюдаемом массиве у меня есть свойство с именем id, и я получу информацию, имеет ли этот id значение true или false. В зависимости от этого я хочу привязать флажок.
Я действительно не знаю, как поступить с этим. Кто-нибудь знает о привязке флажка без столбца. Кроме того, как только мы привяжем, как мы можем получить значение из флажка, когда мы ставим или снимаем его?
Вот скрипта