我有一个服务文件,其中有两个方法getdata和delete,因为数据来自API。 getdata方法工作正常。

我在该siteId的delete()中遇到问题,它没有读取任何数据。如果单击“保存”按钮,它应该标识站点ID并删除该特定数据。但是我认为我在服务文件和组件文件中写错了。

服务

datasites : Data
getData(): Promise<PagedResult<data>> {

  const url = `${environment.API_URL}/data/GetData`;
  //See that is a "simple" get
  return this.httpClient.get<PagedResult<data>>(url).toPromise();
}
delete(): Promise<Data>{
  alert(2);
  const siteId = this.datasites.principalId;
  const url = `${environment.ADMIN_API_URL}/sites/DeleteSite?siteId=`+ siteId;
  console.log(siteId);
  return this.httpClient.post<Sites>(url, request).toPromise();

}


component.ts

async ngOnInit(){
      alert("***********");

      this.data = await this.dataService.getData();
      console.log(this.data[0].principalId);
       this.deleteSiteId = this.data[0].principalId;
       console.log(this.deleteSiteId);

    }
   delete(data){
     alert(aaaaaaaaa);
     this.dataService.delete(data);
     console.log(data.principalId);

   }
    showButtons: boolean = false;
  clickEvent(data){
    data.isClicked = !data.isClicked;
  this.showButtons = !data.showButtons;
}
  }


.html

<div *ngIf="showButtons">
      <button (click)="delete()">Save</button>
    </div>

最佳答案

我可以清楚地看到您的代码有太多问题。

显而易见的是,在使用的任何编辑器中都没有lint。如果您有,那您将发现问题。 ;)

除此之外,您还要在component.ts文件中调用delete()方法,而该方法不需要任何参数。

您使用service.ts文件中的delete()做相同的事情,只是相反。呵呵

如果您可以在StackBlitz或任何此类站点中复制上述问题,这将非常有用。

07-24 09:44
查看更多