DataTables draw() 不改变显示

DataTables draw() doesn't change display

我遇到了一些[应该]非常简单的事情:修改单元格的内容后,我无法使用 draw() 使更改可见。

这是一个基本示例,显示了更改前后的DataTable().data(),而显示的table保持不变。

$('table').DataTable({
  data: [
  {a: 'A1', b: 'B1'},
  {a: 'A2', b: 'B2'}
  ],
  columns: [
    {data: 'a', title: 'A'},
    {data: 'b', title: 'B'}
  ]
});
var dt = $('table').DataTable();
  console.log('before:', dt.data()[0]);
$('button').click(function() {
  dt.row(0).data().a = 'XXX';
  dt.draw();
  console.log('after:', dt.data()[0]);
});

抱歉,无法使用 SO 片段执行,它会在超时前引发大量安全错误。
但是你可以看到它在 this fiddle.

中工作

注意:我也尝试在 draw() 之前插入 invalidate(),但没有成功。

更新自定义单元格(DOC): https://jsfiddle.net/hdadLhmo/2/

$('table').DataTable({
  data: [
  {a: 'A1', b: 'B1'},
  {a: 'A2', b: 'B2'}
  ],
  columns: [
    {data: 'a', title: 'A'},
    {data: 'b', title: 'B'}
  ]
});
var dt = $('table').DataTable();
  console.log('before:', dt.data()[0]);
$('button').click(function() {
  dt.row(0).data().a = 'XXX';
  dt.draw();
  console.log('after:', dt.data()[0], dt.cell(0, 0).data('XXX'));
});