HandsOnTable 中的 afterCommentChange 挂钩

afterCommentChange hook in HandsOnTable

在 HoT hooks tutorial 上,您可以在 HandsOnTable 中看到一份(完整!?)挂钩列表。但是,其中 none 与评论相关。

我想在添加、删除或更新评论后添加自定义回调。

afterChangeafterContextMenuExecute 似乎都不会在评论更改后触发,而 beforeRender 似乎触发得太频繁了。

理想情况下,我想使用一个特定的挂钩,它仅在添加、修改或删除评论时触发,让我可以访问旧值和新值以及单元格位置。
在这一点上,我会接受任何有效的方法。尽管我还没有发现任何与之相关的东西,但很难相信以前没有人需要它。一旦找到答案,我就会 post 放在这里。

这是一个基本的 HoT 示例,启用了注释并将特定操作添加到上下文菜单:

var data = function () {
  return Handsontable.helper.createSpreadsheetData(100, 10);
};

var container = document.getElementById('example');

var hot = new Handsontable(container, {
  data: data(),
  minSpareCols: 1,
  minSpareRows: 1,
  rowHeaders: true,
  colHeaders: true,
  contextMenu: ['undo','redo','commentsAddEdit','commentsRemove'],
  comments: true,
});
body {   
  margin: 2rem;
  font-size: 13px;
  font-family: 'Open Sans', Helvetica, Arial;
}

h2 {
  margin: 20px 0 0;
  font-size: 18px;
  font-weight: normal;
}
<link href="https://docs.handsontable.com/pro/1.14.3/bower_components/handsontable-pro/dist/handsontable.full.min.css" rel="stylesheet"/>
<script src="https://docs.handsontable.com/pro/1.14.3/bower_components/handsontable-pro/dist/handsontable.full.min.js"></script>


<h2>Handsontable Basic Example (100x10)</h2>

<div id="example"></div>

显然,afterSetCellMeta 正是我要找的:

let hot = new Handsontable(container, {
  // ...,
  afterSetCellMeta: (row, col, key, value) => {
    if (key === 'comment') {
      // comment for cell @ `row`,`col` was changed to `value`
    }
  }
}