【问题标题】:SlickGrid error: Slick.Editors.Text is not a constructorSlickGrid 错误:Slick.Editors.Text 不是构造函数
【发布时间】:2012-06-09 02:25:27
【问题描述】:

我正在尝试在 CakePHP 项目的编辑页面上实现 SlickGrid,当页面加载时,我在 javascript 控制台中收到此错误:

slick.grid.js:2173TypeError:'Slick.Editors.Text is not a constructor' (evaluating 'new (editor || getEditor(activeRow, activeCell))')

数据在我页面的网格中正确呈现,但是当我单击一个单元格进行编辑时,它只是变成白色,我无法输入任何内容。如果我单击另一个单元格,该单元格将变为白色,而第一个单元格将保持白色。

这是我的 php/jQuery 代码:

<?php echo $this->Html->script("/js/slickgrid/lib/jquery-1.7.min.js"); ?>
<?php echo $this->Html->script("/js/slickgrid/lib/jquery.event.drag-2.0.min.js"); ?>
<?php echo $this->Html->script("/js/slickgrid/lib/jquery-ui-1.8.16.custom.min.js"); ?>
<?php echo $this->Html->script("/js/slickgrid/slick.core.js"); ?>
<?php echo $this->Html->script("/js/slickgrid/slick.grid.js"); ?>
<?php echo $this->Html->script("/js/slickgrid/slick.editors.js"); ?>
<?php echo $this->Html->script("/js/slickgrid/slick.formatters.js"); ?>
<?php echo $this->Html->script("/js/slickgrid/slick.dataview.js"); ?>
<?php echo $this->Html->script("/js/slickgrid/plugins/slick.cellselectionmodel.js"); ?>
<?php echo $this->Html->script("/js/slickgrid/plugins/slick.cellrangedecorator.js"); ?>
<?php echo $this->Html->script("/js/slickgrid/plugins/slick.cellrangeselector.js"); ?>
<?php echo $this->Html->script("/js/slickgrid/plugins/slick.rowselectionmodel.js"); ?>

<?php  // Setup rows and cols array for grid

    $columns = array();
    foreach($route['Stop'] as $stop) {
        $columns[] = array( "name"   => $stop['name'],
                            "field"  => $stop['id'],
                            "id"     => $stop['id'],
                            "editor" => "Slick.Editors.Text");
    }

    $tripId = 1;
    $thisTrip['id'] = $tripId;
    foreach($route['RouteTrip'] as $routeTrip) {
        if($routeTrip['trip_id'] != $tripId) {
            $rows[] = $thisTrip;
            $tripId = $routeTrip['trip_id'];
            $thisTrip['id'] = $tripId;
        }
        else {
            $thisTrip[$routeTrip['stop_id']] = $routeTrip['time'];
        }
    }
?>

<?php 
        echo $this->Html->scriptBlock('

            var rows = '.json_encode($rows).';
            var columns = '.json_encode($columns).';
            var options = { rowHeight:21,
                            defaultColumnWidth:100,
                            editable:true,
                            enableAddRow:true,
                            enableCellNavigation:true,
                            asyncEditorLoading:false,
                            autoHeight:true,
                            autoEdit:true
                          };

            slickgrid = new Slick.Grid($("#scheduleTable"), rows, columns, options);
            slickgrid.setSelectionModel(new Slick.CellSelectionModel());
            slickgrid.updateRowCount();
            slickgrid.render();
        ');
?>

$rows 和 $columns 格式正确,每列都有一个“editor”属性,其值为“Slick.Editors.Text”。

帮助?

【问题讨论】:

  • 您能否发布您的列逻辑...错误似乎来自那里。

标签: php jquery cakephp slickgrid


【解决方案1】:

当我开始使用 slickgrid 时,我最初也遇到了这个错误。

错误是因为您将编辑器指定为字符串而不是类。 因此,删除 "editor" => "Slick.Editors.Text" 中的双引号并给出 "editor" => Slick.Editors.Text

这解决了我的错误。希望这个解决方案也能解决你的问题。

【讨论】:

    【解决方案2】:

    包括 slick.editors.js 文件。

    另外,确保编辑器被指定为一个类,而不是一个字符串(我不熟悉 PHP,所以从源代码对我来说并不明显,但我怀疑是这种情况)。

    【讨论】:

    • 我已经这样做了。我刚刚更新了我的问题以包含该代码。
    猜你喜欢
    • 1970-01-01
    • 2017-07-27
    • 2019-08-11
    • 2022-06-11
    • 2019-02-11
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    相关资源
    最近更新 更多