ngx-datatable Получить последние необработанные клики в режиме multiClick - PullRequest
1 голос
/ 01 июня 2019

Я пытаюсь получить последний "клик" сырой из ngx-datatable. В настоящее время у меня есть

<ngx-datatable
   [rows]="rows"
   [selected]="selected"
   [selectionType]="'multiClick'"
   (select)='onSelect($event)'
   (dblclick)='onDoubleClick($event)'
>

Поскольку выбранные исходные тексты хранятся в «исходных текстах», единственное, что почти работает, - это получить последние выбранные следующим образом:

const latest = selected[selected.length - 1];

Дело в том, что когда последний выбранный необработанный текст отменяется (он был выбран ранее), он выходит из массива «selected», и это больше не соответствует действительности. Есть ли какой-то другой способ решить эту проблему, чтобы получить последний «клик» сырой.

1 Ответ

1 голос
/ 04 июня 2019

Если вы имели в виду последнюю выбранную строку , у вас уже есть ответ, вам просто нужно поместить const latest = selected[selected.length - 1]; внутри функции onSelect ().

* 1006 Е.Г. *

onSelect({ selected }) {
   this.selected.splice(0, this.selected.length);
   this.selected.push(...selected);

   const latest = this.selected[this.selected.length - 1];
   console.log('Latest', latest)
}

Поскольку массив индексируется, если вы обращаетесь к последнему индексу, вы всегда получите «последний выбранный ряд».

Однако, если вы намеревались получить строку , которая была нажата последним (независимо от того, выбирает ли пользователь строку или отменила ее выбор), вы можете сделать это с помощью обработчика события onActivate ().

Е.Г.

onActivate(event) {
   if(event.type === "click"){
     console.log(event.row)
   }
}

Это даст вам «последнюю нажатую строку», если пользователь выбирает или отменяет выбор строки.

Вам также необходимо привязать событие активации к своему onActivate ()

<ngx-datatable>
   ...
   (activate)="onActivate($event)
   ...
</ngx-datatable>
...