Пользовательская функция рендеринга не работает в плагине 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 никогда не вызывается, хотя предупреждение срабатывает, есть идеи, почему?

Спасибо


person Cornwell    schedule 18.07.2013    source источник
comment
не по теме: между прочим, есть полезное соглашение о коде JS, позволяющее резервировать имена функций с заглавной буквы только для функций конструктора. javascript.crockford.com/code.html#names   -  person alxndr    schedule 18.07.2013
comment
Спасибо. я не знал об этом   -  person Cornwell    schedule 18.07.2013
comment
Смотрите мой комментарий о рендеринге в ответе ниже   -  person PostureOfLearning    schedule 23.07.2013


Ответы (2)


Если вы используете handsontable, почему бы вам не воспользоваться его встроенными функциями?

Взгляните на условное форматирование HT.

Также в версии 0.9.5 добавлен параметр столбца validator. Подробности здесь.

validator (value: Mixed, callback: Function) 

or

validator : RegExp Object

Затем с помощью события (подробности здесь):

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

сделать форматирование ячейки

Кроме того, в вашем примере вы устанавливаете средство визуализации, но визуализируется ли ячейка на самом деле? Вам нужно перерисовать?

person PostureOfLearning    schedule 22.07.2013

Я вижу, что ваш рендерер предназначен для TextCell.. он будет работать только для текстовой ячейки, проверьте, что рендерер ошибок должен работать для TextCell или NumericCell

person Venu    schedule 21.11.2013