#javascript #angular #datatables
#javascript #angular #таблицы данных
Вопрос:
В каждой строке моей таблицы данных у меня есть . Каждый раз, когда я нажимаю на одну строку, мне удается «что-то сделать» с данными этой строки. Например, я могу отправить Swal-сообщение или напечатать что-либо в консоли.
Проблема в том, что я не могу вызвать там функцию. Как вы можете видеть в части моего кода, у меня есть функция SEARCHMOVIMIENTOS для создания datatable и управления событием «click», а затем функция deleteMovimiento, как и другая функция компонента angular.
searchMovimientosFunction(valuesMovimiento) {
//...here I construct the datatable...
//...in the function below, I control the click event...
if (!$.fn.dataTable.isDataTable('#datatables')) {
$('#datatables tbody td').on('click', 'i', function() {
var tr = $(this).closest('tr');
var row = table.row(tr);
if (this.className == "deleteButton pe-7s-junk pe-lg pe-va") {
this.deleteMovimiento("1"); //<--- not working
//console.log("hello"); //<--- working
}
})
}
}
deleteMovimiento(idMovimiento) {
console.log(idMovimiento);
}
Знаете ли вы, как вызвать функцию deleteMovimiento? Я искал ответ слишком много времени (в datatables.net в stackoverflow,…) безуспешно. Была бы очень признательна за любую помощь.
Комментарии:
1. Попробуйте изменить function () { на () => { как минимум
2. Поскольку вы хотите
this
иметь 2 разных значения — 1) элемент DOM clicked 2) экземпляр компонента — в рамках одной и той же функции, вы можете захотеть присвоитьthis
переменной перед регистрацией события click и использовать это для вызова любых специфичных для компонента методов.3. @AlexanderStaroselsky, это привело к некоторым ошибкам. Возможно, это первый шаг к решению, но то, что сказал PSL, сработало сразу. В любом случае спасибо, Александр.
4. @PSL, это сработало! Большое вам спасибо. Возможно ли пометить комментарий как решение?
5. @PSL, вы хотите написать свой комментарий в качестве решения этого вопроса? Приветствия!