无法使用Angular9传递数据

问题描述

我有一个从后端获取数据的数组。数据应该是这样的

enter image description here

用户界面

enter image description here

使用以下代码将上述数据绑定到表中

HomeComponent.html

<table class="table table-hover" id =jres>     
          <thead>
            <th *ngFor="let col of columns">
              {{col}}
            </th>
          </thead>
          <tbody>
            <tr *ngFor="let jre of jreArray">
                <ng-container *ngFor="let col of index" >
                    <td *ngIf='col !=="location"'>{{jre[col]}}</td>
                    <td *ngIf='col ==="location"' ><input class="btn btn-default" type="submit" value="Download" (click) ="download()"></td>
                </ng-container>             
          </tbody>
      </table>

HomeComponent.ts

export class HomeComponent implements OnInit {

  constructor(private rs:RestService,private service:JreServiceService) { 
   
  } 
  columns= ["ID","JRE Name","Base Package","Download"];
  index=["id","jrename","basepackage","location"]
  jreArray: Array<IJre> = [];
  searchkey: any;
  path:any;

  ngOnInit(): void {
    this.service.getAllJre().subscribe(data=>{
      this.jreArray =  data;
      console.log(data)
    });
  }
 
  download(){
    alert(this.path)
    this.service.download(this.path).subscribe(data=>{
      this.jreArray = data;
    })
  }
}

我要求单击“下载”按钮时将位置值传递给component.ts。我尝试了以下逻辑方法

1.ngModel

2。使用以下代码将值直接传递给方法

 <td *ngIf='col
    ==="location"' ><input class="btn btn-default" type="submit" value="Download" (click) ="download(jre[col])"></td>

有没有简单的方法可以解决此问题。 请对此提供建议。

解决方法

我进行了以下更改。现在我可以传递位置了。

<tbody>
            <tr *ngFor="let jre of jreArray">
              <td >{{jre.id}}</td>
              <td >{{jre.jrename}}</td>
              <td >{{jre.basepackage}}</td>
              <td ><input class="btn btn-default" type="submit" value="Download" (click) ="download(jre.location)"></td>       
          </tbody>