Handsontable 下拉错误 (0.13)

Handsontable Dropdown Bug (0.13)

如果我更改 1 个下拉列表,则所有剩余的行将具有相同的值。

var $container = $(".spreadsheet_div_" + package_id);
        $container.handsontable({
            data: res,
            rowHeaders: true,
            minSpareRows: 0,
            contextMenu: false,
            startRows: qty,
            startCols: length,
            colHeaders: result.field_headers,
            colWidths: result.field_widths,
            columns: result.field_type
        });

这是一个示例输出图像。 http://postimg.org/image/83e9zoak3/

这里是示例控制台日志。数据数组

  1. 数据
  2. colHeaders
  3. 列(用于下拉列表)

这是 jsfiddle:https://jsfiddle.net/fatluke/ao45uhzn/

好的,感谢您发布 jsfiddle。这是您的问题:

你可能知道也可能不知道,在JS中,当你声明一个数组时,数组中的每个元素都是一个对象的引用。如果您要推送整数,这不是问题,因为您每次都会引用一个新的整数。

但是,在您的 parse JSON 方法中,您多次将同一个对象引用推送到数据数组。我不知道为什么你一开始会一遍又一遍地推送相同的数据,但如果你想这样做,你需要每次都克隆对象。

发生的情况是每一行都具有对原始数据对象的相同引用。当您在 handsontable 中进行修改时,它会修改所有元素指向的唯一对象,因此会修改每一行。

同样,一个简单的解决方案是在推送之前克隆对象。否则,你会有这种看起来很滑稽的行为。

编辑:

要测试这个(我已经做过并且它有效)只需提供你的 data 数组复制粘贴数据并将 JSON 方法中的循环更改为 data[i] 而不是 data[ 0]。你会看到它现在工作正常。