У меня есть DataTable, который используется на разных страницах моего веб-приложения. Таблица имеет тег html button
, который добавляет новую строку в таблицу посредством модальной формы, заполняемой конечным пользователем.
При изменении «выполняется» следующее.
var actionArray = ['<input type="radio" value="' + data._id.$oid + '" data-owner="1" name="selectTask" class="minimal selectTask">' +
'<input type="hidden" value="' + data._id.$oid + '" name="associatedActions[]" class="minimal">',
' ' + data.title, ' ' + data.category, ' ' + data.originator.name, ' ' + data.assigned.name, ' ' + moment(data.dueDate.date + data.dueDate.timezone).format('DD MMM YY'), actionStatuses[data.status], filesHTML];
У меня есть массив actionArray
, и в зависимости от того, истинно ли условие (data.assigned._id.$oid === data.originator._id.$oid)
, я записываю один или два типа данных со следующими данными:
Часть вторая:
var myActionsArray = JSON.parse(JSON.stringify(actionArray));
var setActionsArray = JSON.parse(JSON.stringify(actionArray));
myActionsArray.splice(3, 1);
setActionsArray.splice(4, 1);
if (data.assigned._id.$oid === data.originator._id.$oid) {
$('#myActions').DataTable().rows.add([myActionsArray]).draw();
$('#myActions').DataTable().columns.adjust().draw();
$('#setActions').DataTable().rows.add([setActionsArray]).draw();
$('#setActions').DataTable().columns.adjust().draw();
} else {
$('#setActions').DataTable().rows.add([setActionsArray]).draw();
$('#setActions').DataTable().columns.adjust().draw();
}
Если assigned._id
равен originator._id
, в который записаны обе таблицы, в противном случае это просто таблица #setActions
.
Все это прекрасно работает. Моя проблема в том, что таблица появляется на многих других веб-страницах, и когда в таблицу в другом месте сайта добавляется строка, мне нужно просто записать в таблицу оригинальный массив, то есть actionArray
. Поэтому мне нужно сделать «вторую часть» приведенного выше кода в зависимости от того, откуда вызывается «при изменении», т. Е. Имеет ли строка добавления запроса DataTable одну из двух таблиц, #myActions
или #setActions
или откуда-то еще.
Мне нужно что-то похожее на $(this).attr("id");
, поэтому я могу сделать условную 'часть вторую' и вместо этого выполнить:
DataTable().rows.add([actionArray]).draw()
Как сделать добавление строки в таблицу данных условно, как к таблице запрос инициируется?