首页 > 解决方案 > 无法使用 Angular9 传递数据

问题描述

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

在此处输入图像描述

UI 在此处输入图像描述 使用以下代码将以上数据绑定到表

主页组件.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>

主页组件.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.ng模型

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

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

有什么简单的方法可以解决这个问题。请对此提出建议。

标签: angularjsangular-ngmodelangular-ng-ifangular-bootstrap

解决方案


我做了以下更改。现在我可以通过位置了。

<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>

推荐阅读