Javascript 使用分页时,删除视图模型更改不会传播到DataTables UI

Javascript 使用分页时,删除视图模型更改不会传播到DataTables UI,javascript,jquery,knockout.js,pagination,datatables,Javascript,Jquery,Knockout.js,Pagination,Datatables,我使用的是淘汰视图模型和带有分页的JQuery数据表。有一个外部进程可以更改视图模型的基础值。但是,如果值在外部更改为“false”,并且特定项不在当前页面上,则更改不会传播到UI。如果项目位于当前页面上,则更新为“确定” 可以找到说明该问题的JSFiddle。如果转到第二页,并单击“更改项目”(更改第11项),复选框将更改为“确定”。但是,如果在第一页上重新运行JSFIDLE并单击该按钮,则不会正确更新第二页上的复选框 我用于更新项目的代码: vm.itemsVM()[10].selecte

我使用的是淘汰视图模型和带有分页的JQuery数据表。有一个外部进程可以更改视图模型的基础值。但是,如果值在外部更改为“false”,并且特定项不在当前页面上,则更改不会传播到UI。如果项目位于当前页面上,则更新为“确定”

可以找到说明该问题的JSFiddle。如果转到第二页,并单击“更改项目”(更改第11项),复选框将更改为“确定”。但是,如果在第一页上重新运行JSFIDLE并单击该按钮,则不会正确更新第二页上的复选框

我用于更新项目的代码:

 vm.itemsVM()[10].selected(false);
以及生成表格内容的代码:

<!-- ko foreach: itemsVM -->
<tr>
    <td><input type="checkbox" data-bind="checked: $data.selected" /></td>
</tr>
<!-- /ko -->


我不知道为什么这个更新不正确,我真的很感谢你的帮助。谢谢:)

看起来您需要包含一些额外的代码,以使datatables能够很好地与knockout配合使用。谢谢你的评论,詹姆斯。但是,使用datatables.net中建议的方法,仍然无法正确地使行的数据无效并重新读取数据(这可能是一个单独的问题)。下面是更新的JSFIDLE。我猜当您在第一个页面上时,DOM中不存在第二个页面行,这就是为什么当底层可观察到的更改时,UI不会收到更改通知的原因。