0

My situation: I have a drop down and a table below the drop down. For understanding assume drop down is city and table below shows list of cities with details. When user selects a city in the drop down the row for that city must be made the first row in the table. I know how to change the underlying data structure/array to find and insert replace the first item in array. Having done that how the heck do I get the table to refresh so it now shows that row on top ? Using the basic sample how do I get say row 5 Boron to show on row one when some button clicked on this stackblitz. https://stackblitz.com/angular/epkqlvvjdqn?file=app%2Ftable-basic-example.ts

ViqMontana
  • 5,090
  • 3
  • 19
  • 54
Gullu
  • 3,477
  • 7
  • 43
  • 70

1 Answers1

0

You can use destructuring to swap array items as below:

dataSource = new MatTableDataSource();
  ngOnInit(){
    this.dataSource.data = ELEMENT_DATA;
  }
  changeData(){
    let data = this.dataSource.data;

    [data[0],data[4]] = [data[4],data[0]];

    this.dataSource.data = data;    
  }

Working demo here: https://stackblitz.com/edit/angular-exkuqd

User3250
  • 2,961
  • 5
  • 29
  • 61