我一直在努力爭取看起來應該是一個非常簡單的Knockout.js任務幾個小時,並閱讀了多個網站和問題後,我是仍然難倒!knockout.js表格過濾器不更新
這裏是小提琴: http://jsfiddle.net/PL8UW/
基本上我有一個表綁定到淘汰賽視圖模型一個「狀態」欄。
我也有一個觀察的對象,應該讓你在各種狀態
過濾如果我的表直接將數據綁定對象的一切節目,但如果我綁定到計算機,然後什麼也不顯示。
HTML:
<form>
<input id="foo" type="checkbox" checked /> Foo
<input id="bar" type="checkbox" checked /> Bar
</form>
<div id="tableDiv">
<table>
<thead>
<tr>
<th>Id</th>
<th>Status</th>
</tr>
</thead>
<tbody data-bind="foreach: filteredData">
<tr>
<td><span data-bind="html: id"></span></td>
<td><span data-bind="html: status"></span></td>
</tr>
</tbody>
</table>
</div>
的javascript: VAR數據= [ { 「ID」:1, 「狀態」: 「foo」 的}, { 「ID」:2 「狀態」:「 「狀態」:「foo」}, {「id」:5,「status」:「foo」}, 「酒吧」}];
var viewModel = {
tableData: ko.observableArray(data),
filter: ko.observable({'foo': ko.observable(true), 'bar': ko.observable(true)}),
filteredData: ko.computed(function() {
return ko.utils.arrayFilter(viewModel.tableData, function(item) {
return viewModel.filter[item.Status];
});
})
};
ko.applyBindings(viewModel, document.getElementById('tableDiv'));
$('input[type=checkbox]').click(function() {
viewModel.filter[this.id] = this.checked;
});
謝謝 - 這是我第一次使用knockout.js,你的答案使用了我以前從未見過的東西!我認爲是時候讓我做更多的閱讀! :) – VaticanUK