В вашей функции moveToSecondTable()
ваша операция копирования данных основана на несуществующем свойстве isSelected
, поэтому проверка isSelected === false
завершается неудачно, поскольку undefined
не равно false
. Вы можете легко это исправить, используя менее строгое сравнение и просто проверяя правдивость, например isSelected == false
или просто !isSelected
:
this.dataSource = new MatTableDataSource<Element>(this.uncheckedData.filter(x => !x.isSelected));
Но основная причина проблемы заключается в том, что ваша модель данных, определенная в Element
, не включает свойство isSelected
. Лучшее решение - добавить свойство в модель и указать значение по умолчанию:
export interface Element {
name: string;
position: number;
weight: number;
symbol: string;
isSelected: boolean
}
const ELEMENT_DATA: Element[] = [
{ position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H', isSelected: false },
{ position: 2, name: 'Helium', weight: 4.0026, symbol: 'He', isSelected: false },
{ position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li', isSelected: false },
{ position: 4, name: 'Beryllium', weight: 9.0122, symbol: 'Be', isSelected: false },
{ position: 5, name: 'Boron', weight: 10.811, symbol: 'B', isSelected: false }
];