Вызов «компонентной функции» с событием click в Datatable

#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, вы хотите написать свой комментарий в качестве решения этого вопроса? Приветствия!