代码之家  ›  专栏  ›  技术社区  ›  tao

AfterCommentChange挂钩

  •  0
  • tao  · 技术社区  · 6 年前

    论热 hooks tutorial 可以看到一个(完整的!?)可手持挂钩列表。但是,它们都不是评论相关的。

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

    两者都不是 afterChange 也不 afterContextMenuExecute 似乎在注释更改后触发,并且 beforeRender 似乎触发太频繁了。

    理想情况下,我想使用一个特定的钩子,它只在添加、修改或删除注释时触发,这样我就可以访问新旧值以及单元格位置。
    在这一点上,我愿意接受任何有用的东西。尽管我没有发现任何与此相关的东西,但很难相信以前没有人需要它。我一找到答案,就把它贴在这里。

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

    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>
    1 回复  |  直到 6 年前
        1
  •  1
  •   tao    6 年前

    显然地, afterSetCellMeta 是我想要的:

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