tabEndNewRow 复制第一行而不是使用提供的数据
tabEndNewRow copies first fow instead of using provided data
在我的代码中,我向 tabEndNewRow
传递了一个初始的空行对象。当您转到 jsFiddle 并在 C2 列中输入内容并按下 tab
键时
- 新行已插入 - 正确
- 输入的值已分配给新行的 C2 列 - 错误
如果您使用 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);
在我的代码中,我向 tabEndNewRow
传递了一个初始的空行对象。当您转到 jsFiddle 并在 C2 列中输入内容并按下 tab
键时
- 新行已插入 - 正确
- 输入的值已分配给新行的 C2 列 - 错误
如果您使用 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);