Передача строки данных из таблицы mat при нажатии на другой компонент в Angular 7 - PullRequest
0 голосов
/ 04 июля 2019

Я хочу передать полную строку другому компоненту для отображения этих данных, у любого тела есть способ сделать это.

Html:

    <mat-row *matRowDef="let row; columns: displayedColumns;" (click)="getRecord(row)"></mat-row>

ц

  //Get row data when the click
  getRecord(row){
      // Do somthing ..... //
  }

Я буду много искать, я не могу найти путь.

Ответы [ 2 ]

1 голос
/ 05 июля 2019

Вероятно, существует несколько способов передачи данных между братьями и сестрами, но угловой способ заключается в использовании службы: https://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service.

Вы также можете передавать данные через события. Сделайте так, чтобы щелчок строки вызвал событие, которое родительский компонент получил, а затем передал брату дочерней таблицы через функцию.

0 голосов
/ 07 июля 2019

Я решил свою проблему, выполнив следующие шаги после нажатия на строку:

  1. Сохранить данные в виде переменной в служебном файле.
  2. используйте навигацию для маршрутизации.
  3. получить данные из переменной в служебном файле.
   public  getRecord(row : any){
    console.log(row);
     this.userservice.dataRow = row;
     this.router.navigate(['/profile']);
  }

Сервисный файл:

    //Temporarily stores row data from mat-table
    dataRow:any;

profile.ts:

    this.dataRow = this.userservice.dataRow;
...