Табулятор: редактирование вложенного значения и получение родительского объекта

#javascript #object #parent #tabular #tabulator

#javascript #объект #родительский #табличный #табулятор

Вопрос:

Я пытаюсь получить родительский объект вложенного поля, которое я редактирую.

Давайте предположим, что мое определение столбца выглядит следующим образом:

 columns:[
        {title:"Name"   i, field:"user"   i   ".name", cellEdited : cellEditDone},  
    ],
  

И мой cellEditDone выглядит следующим образом:

 cellEditDone: function (cell) {
  var rowData = cell.getRow().getData();

  var value = cell.getValue();
}
  

Теперь, как вы можете видеть, определения столбцов могут быть динамически сгенерированы на основе того, сколько строк должно появиться в строке.

Итак, когда я заканчиваю редактирование ячейки, мне нужно получить конкретный объект (в данном случае пользовательский объект), который был отредактирован, а не только поле name.

Могу ли я каким-то образом получить родительское значение поля cells или я могу каким-то образом получить дополнительные пользовательские данные в функцию cellEditDone для каждой строки / ячейки, чтобы идентифицировать конкретного пользователя с отредактированным именем?

Ответ №1:

Что ж. Занимаюсь этим весь вечер и через 5 минут после того, как я разместил здесь вопрос, я нахожу решение..

Оказывается, вы можете добавлять пользовательские данные в определение столбца;

 columns:[
        {title:"Name"   i, field:"user"   i   ".name", cellEdited : cellEditDone, userIndex : i},  
],
  

и извлеките его следующим образом в событии editDone :

 var definition = cell.getColumn().getDefinition();
var theIndex = definition.userIndex;