Php SlickGrid错误:Slick.Editors.Text不是构造函数
我试图在CakePHP项目的编辑页面上实现SlickGrid,当页面加载时,javascript控制台中出现以下错误:Php SlickGrid错误:Slick.Editors.Text不是构造函数,php,jquery,cakephp,slickgrid,Php,Jquery,Cakephp,Slickgrid,我试图在CakePHP项目的编辑页面上实现SlickGrid,当页面加载时,javascript控制台中出现以下错误: slick.grid.js:2173TypeError:'Slick.Editors.Text is not a constructor' (evaluating 'new (editor || getEditor(activeRow, activeCell))') 数据在我的页面上的网格中正确呈现,但当我单击单元格进行编辑时,它只会变为白色,我无法键入任何内容。如果我单击另
slick.grid.js:2173TypeError:'Slick.Editors.Text is not a constructor' (evaluating 'new (editor || getEditor(activeRow, activeCell))')
数据在我的页面上的网格中正确呈现,但当我单击单元格进行编辑时,它只会变为白色,我无法键入任何内容。如果我单击另一个单元格,该单元格将变为白色,第一个单元格将保持白色
以下是我的php/jQuery代码:
包括slick.editors.js文件
另外,确保编辑器被指定为类,而不是字符串(我不熟悉PHP,所以从源代码中看不太清楚,但我怀疑是这样的)。我在开始使用slickgrid时也遇到了这个错误
错误是因为您将编辑器指定为字符串而不是类。
因此,删除“editor”=>“Slick.Editors.Text”中的双引号,并将其命名为“editor”=>Slick.Editors.Text
这为我解决了这个错误。希望这个解决方案也能解决你的问题。你能发布你的专栏吗。。。错误似乎是从那里来的,我已经做过了。我刚刚更新了我的问题,将代码也包括在内。
<?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();
');
?>