Дополнение логического не работает, с ngIf в ngx-datatable - PullRequest
0 голосов
/ 15 февраля 2020

onSelect() вызывается всякий раз, когда выбирается строка в ngx-datatable. isNodeSelected по какой-то причине не дополняется, когда выбирается одна и та же строка, даже если она входит в оператор if. isNodeSelected используется с ngIf для отображения кнопок. Webstorm выделяет утверждение дополнения и говорит: «сужено до истинного» * ​​1005 *

onSelect({ selected }) {
    this.isNodeSelected = true;
    if (Array.isArray(this.selected) && this.selected.length === 1) {
      if (this.selected[0].hasOwnProperty('id') && this.selected[0].id === selected[0].id) {
        this.isNodeSelected = !this.isNodeSelected;
      } else if (this.selected[0].hasOwnProperty('id') && this.selected[0].id !== selected[0].id) {
        this.selected = selected;
        this.isNodeSelected = true;
      }
    } else {
      this.selected = selected;
      this.isNodeSelected = true;
    }
  }

1 Ответ

1 голос
/ 15 февраля 2020

Если эта функция находится в вашем файле component.ts, по крайней мере, вам нужно заменить:

onSelect({ selected }) {

на

onSelect(selected) {

, так как фигурная скобка используется для вставки значений переменных в шаблоне, а не в коде позади.

Кроме этого, проходите каждый бит с помощью отладчика для проверки значений в каждой точке.

Например, вводит ли он второй оператор if, если да, то какое значение выбрано [0] .id et c.

...