【问题标题】:Tabulator 5.0 Reference Error on tabEndNewRowtabEndNewRow 上的 Tabulator 5.0 参考错误
【发布时间】:2022-01-22 18:14:13
【问题描述】:

我想使用函数 tabEndNewRow 创建一个新行并跳转到左外层单元格,但我收到以下错误消息:

Uncaught ReferenceError: nav is not defined
    at Edit.js:91

新行已创建,但焦点未设置在新行中所需的单元格上。我在 4.9 版中使用 tabEndNewRow 没有任何问题。这是我用来测试两个版本的 tabEndNewRow 行为的代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <!-- Tabulator 5.0-->
    <link rel="stylesheet" href="tabulator-master_5_0/dist/css/tabulator.css">
    </style>
    <script src="tabulator-master_5_0/dist/js/tabulator.js"></script>

    <!-- Tabulator 4.9-->
    <!-- <link rel="stylesheet" href="tabulator-master_4_9/dist/css/tabulator.css"></style> -->
    <!-- <script src="tabulator-master_4_9/dist/js/tabulator.js"></script> -->

</head>

<body>
    <div id="table"></div>

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

        var table = new Tabulator('#table', {
            columns: cols,
            data: data,
            tabEndNewRow: true
        })


    </script>
</body>

</html>

由于我在 Edit.js 文件中查看的错误消息 - 这是导航到创建的行的代码。

    keybindingNavigateNext(e){
        var cell = this.currentCell,
        newRow = this.options("tabEndNewRow");

        if(cell){
            if(!this.navigateNext(e)){
                if(newRow){
                    cell.getElement().firstChild.blur();

                    if(newRow === true){
                        newRow = this.table.addRow({})
                    }else{
                        if(typeof newRow == "function"){
                            newRow = this.table.addRow(newRow(cell.row.getComponent()))
                        }else{
                            newRow = this.table.addRow(Object.assign({}, newRow));
                        }
                    }

                    newRow.then(() => {
                        setTimeout(() => {
                            nav.next();
                        })
                    });
                }
            }
        }
    }

【问题讨论】:

    标签: tabulator


    【解决方案1】:

    我也有同样的经历。我想这一定是一个错误,所以我为 Tabulator 5.0.8 https://github.com/olifolkerd/tabulator/issues/3523

    创建了新的错误报告

    工作的 jsFiddle 在这里 https://jsfiddle.net/radek/Lkah397y/4/

        var cols = [
            { title: "Cell 1", field: "c1", editor: "input" },
            { title: "Cell 2", field: "c2", editor: "input" }
        ];
        var data = [{}]
    
        var table = new Tabulator('#table', {
            columns: cols,
            data: data,
            tabEndNewRow: true
        })
    

    更新

    在 5,1 分支中对此进行了修复,并将包含在下一个版本中

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 2013-02-11
      • 2015-07-30
      • 2018-03-12
      • 2012-12-27
      • 2023-03-30
      相关资源
      最近更新 更多