自定义渲染器function无法在handsontable插件中工作

我有一个函数来处理一些onChange事件并且运行良好。 该函数调用另一个函数来检查单元格的内容,如果有错误则应该更改单元格颜色。

 function Check(x, y) { var content = $editorTableContainer.handsontable('getDataAtCell', y, x); var split = content.split(' '); $.each(split, function (key, value) { $.get('check.php?word=' + value, function (data) { //blank if no error otherwise it returns an array of suggestions (only need to check if there is an error) if (data) { alert("test"); var meta = $editorTableContainer.handsontable('getCellMeta', y, x); meta.renderer = ErrorRenderer; } }); }); return; } 

这是我简单的ErrorRenderer:

 function ErrorRenderer(instance, td, row, col, prop, value, cellProperties) { Handsontable.TextCell.renderer.apply(this, arguments); console.log(row); td.style.fontWeight = 'bold'; td.style.color = 'green'; td.style.background = '#CEC'; } 

永远不会调用ErrorRenderer,即使触发警报,任何想法为什么?

谢谢

如果您使用的是handontable,为什么不使用其内置function?

看看HT 条件格式

此外,在0.9.5版本中,列选项添加了validator 。 细节在这里 。

 validator (value: Mixed, callback: Function) 

要么

 validator : RegExp Object 

然后使用事件(详情请点这里 ):

 afterValidate (isValid: Boolean, value: Mixed, row: Number, prop: String, source: String) 

做单元格的格式化

此外,在您的示例中,您正在设置渲染器,但实际上是否正在渲染单元格? 你需要重新渲染吗?

我可以看到你的渲染器是用于TextCell ..它只适用于文本单元格,检查错误渲染器应该适用于TextCell或NumericCell