tabEndNewRow 复制第一行而不是使用提供的数据

tabEndNewRow copies first fow instead of using provided data

在我的代码中,我向 tabEndNewRow 传递了一个初始的空行对象。当您转到 jsFiddle 并在 C2 列中输入内容并按下 tab 键时

如果您使用 tabEndNewRow 的功能,那么它会按预期工作。我是不是看错了?

var cols = [
    { title: "Cell 1", field: "c1" },
    { title: "Cell 2", field: "c2", editor: "input" }
];
        
var row = {"c1":"","c2":""}

var table = new Tabulator('#table', {
    columns: cols,
    data: [row],
    height:"100%",
    tabEndNewRow: row,
});

Tabulator v5.0.8

在您的 JS Fiddle 中,您将行对象传递给 data 选项和 tabEndNewRow 选项。

因为对象是通过引用传递的,所以对行数据的编辑随后会存储在创建新行时调用的同一个对象中,因此它由新数据填充。

在您的示例中,您需要在将行对象传递给 tabEndNewRow 属性时通过调用 Object.assign 来中断引用:

tabEndNewRow:Object.assign({}, row);