将行数据从Angular Material表显示到另一个组件中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将行数据从Angular Material表显示到另一个组件中相关的知识,希望对你有一定的参考价值。

我有两个组成部分。第一个组件包含“角材料表”,而第二个组件将显示在表中单击的行的详细信息。

第一部分:

    const ELEMENT_DATA: GoodsList[] = [
    {initial: 'J', eta: '20-01-2020', src: 'IN'},
    {initial: 'N', eta: '20-01-2020', src: 'ON''}
]
<table mat-table [dataSource]="dataSource" class="mat-elevation-z8">
    <ng-container matColumnDef="ordered">
        <th mat-header-cell *matHeaderCellDef> Initial </th>
        <td mat-cell *matCellDef="let element"> {{element.initial}} </td>
    </ng-container>

    <ng-container matColumnDef="eta">
        <th mat-header-cell *matHeaderCellDef> ETA </th>
        <td mat-cell *matCellDef="let element"> {{element.eta}} </td>
    </ng-container>

    <ng-container matColumnDef="srt">
        <th mat-header-cell *matHeaderCellDef> SRC </th>
        <td mat-cell *matCellDef="let element"> {{element.src}} </td>
    </ng-container>
    <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
    <tr mat-row *matRowDef="let row; columns: displayedColumns;" (click)="getRecord(row)"></tr>
</table>

现在函数getRecord()可以正常工作。

    getRecord(row: GoodsList){
    console.log(row);
    }

数据是在行变量中捕获的,但是现在如何根据单击的内容将其传递到另一个组件中?

答案

这里是使用服务的示例(该示例与用户管理有关:

  • 在您的UserService中,声明类型为Subject的属性用户。
user: Subject<User> = new Subject();
  • 以可观察的方式暴露在外面:
user$: Observable<User>
...
this.user$ = this.user.asObservable();
  • 登录功能将更新私人用户的主题。
login(userName: string, password: string) {
  //...
  this.user.next(new User("First name", "Last name"));
}
  • 在您的UserComponent中,可观察地订阅UserServive的user $以更新视图。
this.userService.user$.subscribe((userData) => {this.user = userData;});
  • 在您看来,只需使用字符串插值:
{{user?.firstName}} {{user?.lastName}}

这里是工作中的打孔器:http://plnkr.co/edit/qUR0spZL9hgZkBe8PHw4?p=preview

以上是关于将行数据从Angular Material表显示到另一个组件中的主要内容,如果未能解决你的问题,请参考以下文章

根据 Id [重复] 将行从一个表更新到另一个表

如何将自定义样式添加到 Angular Material Table 单元格的一小部分?

将行从一个表复制到另一个表时如何解决数据截断错误,两个表具有相同的模式?

Angular 2 / Material - 应用到父 FormGroup 的自定义验证器未显示 md 错误

将行从一个链接表插入到另一个链接表

Angular Material 表动态列