SlickGrid DataView устанавливает colspan, используя значение из строки

Я пытаюсь реализовать обновление colspan для определенных элементов в SlickGrid:

Эта часть кода отлично работает:

dataView.getItemMetadata = function (row) {

  if (0 == 0) {
    return {
      "columns": {
        "heading": {
          "colspan": "*"
        }
      }
    };
  } else {
    return {
      "columns": {
        "heading": {
          "colspan": 1
        }
      }
    };
  }
};

Он дает всем элементам colspan, как и ожидалось, но я хочу получить значение в столбце «выделить» и использовать его, чтобы определить, применяется ли столбец «заголовок». Это необходимо обновлять каждый раз, когда щелкают флажок в столбце выделения. Поэтому мне нужно получить значение столбца «выделить» в этой строке.

Если я запустил это:

  console.log(dataView.getItem(row));

Я получаю несколько таких предметов:

Object {id: "id_5", highlight: 1, heading: "voluptatem", quoted: 0…}

Но если я запустил это:

  console.log(dataView.getItem(row).highlight);

Я получаю это:

Uncaught TypeError: Cannot read property 'highlight' of undefined

У меня вопрос: правильно ли я поступаю, и если да, то как мне получить значение ячейки в столбце «выделить» и в строке «строка»?


person matt9292    schedule 04.03.2017    source источник


Ответы (1)


Мне нужно было обернуть текущий оператор if в другой оператор if:

if (typeof data[row] != "undefined") {
  //original if
}

чтобы убедиться, что строка действительно существует

person matt9292    schedule 04.03.2017
comment
отлично, да, я собирался сказать, что ошибка указывает не на то, что свойство не существует (это вернет undefined), а скорее на то, что не существует всей строки. - person Ben McIntyre; 05.03.2017