javascript - Angular 5 w/Angular Material - 从 ngFor 中提取对象属性以在组件中使用

标签 javascript loops object angular5

    <div *ngFor="let player of players">
      <h4 mat-line>{{player.firstName}} {{player.lastName}} - {{player.id}}</h4>
    </div>

我正在从我的 player.service.ts 文件执行 HTTP get 调用,然后遍历返回的播放器对象,打印出大量播放器列表中的 firstName、lastName 和 id 属性。

我需要在循环中的给定点提取特定玩家 ID,以便我可以将其传递给子 Edit Player 组件,该组件打开一个模式,其中预先填写了该特定玩家的信息(使用 NgModel 和对 API 的 getbyId 调用以获取播放器对象)。我该怎么做呢?

最佳答案

看起来您正在使用 @angular/material。如果是这样,您应该能够使用点击处理程序来加载播放器数据并使用他们提供的对话服务打开对话。

例如:

模板:

 <div *ngFor="let player of players">
    <h4 (click)="handlePlayerClick(player.id)"
        mat-line>
       {{player.firstName}} {{player.lastName}} - {{player.id}}
     </h4>
 </div>

组件:

constructor(private dialogService: MatDialog, private playerApi: PlayerApiService) { }

handlePlayerClick(playerId: string): void {
   // potentially open a MatDialog here
   this.playerApi.getById(playerId).subscribe((playerData: PlayerInterface) => { 
     const dialogConfig = {
        data: {
          playerData: playerData
        }
     } as MatDialogConfig;

     this.dialogService.open(EditPlayerComponent, dialogConfig);
   });
}

文档:https://material.angular.io/components/dialog/api

关于javascript - Angular 5 w/Angular Material - 从 ngFor 中提取对象属性以在组件中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48653065/

相关文章:

javascript - 从所需的对象文字中访问 `this`?

javascript - 当使用翻转图像提交表单时,我的验证被忽略

javascript - 在设置中打开自定义页面点击,firefox addon SDK

javascript - 如何在文本框/文本区域/文本输入中显示自动完成

javascript - 如何避免从查询中读取行时超时(Phonegap + Javascript)

Javascript - 数组循环问题

javascript - React JSX 代码未编译

表中的 Mysql 循环获取某些值

Java 时间显示意外结果?

C++将成员对象函数赋值给类成员函数