Условно добавить строку в DataTables (jQuery библиотека) - PullRequest
0 голосов
/ 03 мая 2020

У меня есть 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()

Как сделать добавление строки в таблицу данных условно, как к таблице запрос инициируется?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...