При перемещении со стрелками внутри таблицы выделите выделенную строку. - PullRequest
0 голосов
/ 08 июля 2019

У меня есть таблица (mat-table), где я могу прокручивать строки с помощью клавиш со стрелками вверх и вниз, но прокрутка не перемещается к выбранной строке и скрыта от просмотра

С помощью этой функции я двигаюсь клавишами:

keydown(event: KeyboardEvent) {
    if (!this.multipleCell) {
      event.preventDefault();
      let currentIndex = this.data.data.findIndex(row => row.data === this.selectedObject);
      let newSelection = -10;
      if (event.key === 'ArrowDown') {
        this.data.data.forEach((row, index) => {
          if (newSelection == -10 && index > currentIndex && row.rowType == RowType.ROW)
            newSelection = index;
        });
      }
      if (event.key === 'ArrowUp') {
        currentIndex = this.data.data.length - currentIndex - 1;
        this.data.data.reverse().forEach((row, index) => {
          if (newSelection == -10 && index > currentIndex && row.rowType == RowType.ROW)
            newSelection = index;
        });
        this.data.data.reverse();
        if (newSelection != -10) {
          newSelection = this.data.data.length - newSelection - 1;
        }
      }
      if (newSelection != -10) {
        this.selectedObject = this.data.data[newSelection].data;
      }

    }
  }
...